假设我有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();
}
但我无法理解它的含义或工作原理。还有其他简单易懂的方法吗?
答案 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();