C++でvectorをcoutする

はじめに

みなさん vector 使ってますか。vector いいですよね。
この vector の中身を見たいとき、1つずつ cout すればいいわけですが、なんとなくしっくり来ない。
なので、vector を前後に波括弧つけて、数字の間にカンマを入れた string に変換する関数を作りました。

プログラム

関数の名前は formatVecInt2Str です。
vector を string に format する、と言う意味の名前です。

#include <bits/stdc++.h>
using namespace std;

string formatVecInt2Str(vector<int> vec){
    string str = "";
    str +="{";
    bool isFirst = true;
    for (auto item : vec){
        if(!isFirst) str += ", ";
        str += to_string(item);
        isFirst = false;
    };
    str += "}";
    return str;
}

int main(){
    vector<int> vec = {1,2,3,4,5,6};
    string str;
    str = formatVecInt2Str(vec);
    cout << str << endl;
}

アウトプット

{1, 2, 3, 4, 5, 6}

解説

main で str = formatVecInt2Str(vec); とすると、str に vector の中身がフォーマットされた状態で文字列として格納されるので、あとはそれを cout する。
関数 formatVecInt2Str は項目を to_string で文字列にして str に付け足しているのですが、前後に波括弧と数字の間にカンマを入れて、余計なカンマが入らないようにコントロールしたりしています。

qiita の記事を参考にしました。

以上