【发布时间】:2015-08-02 00:48:34
【问题描述】:
假设我有一个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();
}
但我无法理解它的含义或它是如何工作的。还有其他简单易懂的方法吗?
【问题讨论】:
-
您对它的工作原理具体有什么不明白的地方?
-
我不明白这句话的作用
std::copy(vec.begin(), vec.end()-1, std::ostream_iterator<int>(oss, ",")); -
有人可以建议任何其他方法吗?
-
@ronilp 不需要另一种方式,这个方式很好,
std::copy是最易读和最惯用的复制方式。 “我不明白”不是切换实现的理由。您需要阅读文档。 -
0x499602D2 建议的方式更容易理解。我一直在寻找这样的方式。
标签: c++ string vector iterator ostream