如何在C ++中将vector <int>转换为string

时间:2015-05-20 16:24:05

标签: c++ string vector iterator ostream

假设我有vector<int>并且我想将其转换为字符串,我该怎么办? 我在互联网上搜索得到的是

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();
}

但我无法理解它的含义或工作原理。还有其他简单易懂的方法吗?

2 个答案:

答案 0 :(得分:2)

只有在每个插入的整数之后添加分隔符时才需要该代码,但即便如此,它也不必那么复杂。一个简单的循环和to_string的使用更具可读性:

std::string str;

for (int i = 0; i < vec.size(); ++i) {
    str += std::to_string(vec[i]);
    if (i+1 != vec.size()) { // if the next iteration isn't the last
        str += ", "; // add a comma (optional)
    }
}

答案 1 :(得分:0)

划分数字,

std::vector<int> v {0, 1, 2, 3, 4};
std::string s("");
for(auto i : v)
    s += std::to_string(i);

使用逗号分隔符

std::vector<int> v {0, 1, 2, 3, 4};
std::string s("");
for(auto i : v)
    s += std::to_string(i) + ",";
s.pop_back();