1. ホーム
  2. c++

[解決済み] vector<int>を文字列に変換する [重複]。

2022-03-06 20:11:06

質問

C++で、int型のベクトル(すなわち、"int "型)を変換する最も簡単な方法は何ですか? vector<int> ) を文字列に変換しますか?

どのように解決するのですか?

たぶん std::ostream_iteratorstd::ostringstream :

#include <vector>
#include <string>
#include <algorithm>
#include <sstream>
#include <iterator>
#include <iostream>

int main()
{
  std::vector<int> vec;
  vec.push_back(1);
  vec.push_back(4);
  vec.push_back(7);
  vec.push_back(4);
  vec.push_back(9);
  vec.push_back(7);

  std::ostringstream oss;

  if (!vec.empty())
  {
    // Convert all but the last element to avoid a trailing ","
    std::copy(vec.begin(), vec.end()-1,
        std::ostream_iterator<int>(oss, ","));

    // Now add the last element with no delimiter
    oss << vec.back();
  }

  std::cout << oss.str() << std::endl;
}