我正在尝试获取向量的值,并在每个数字后用感叹号将它们相邻列出。
输入是长向量v = {3,5,6,7};。
我希望输出为3! 4! 5! 6! 7!
我当前的输出是3! 34! 345! 3456! 34567!
string final_word = "", single_word; stringstream convert;
for (long i : v) {
convert << i;
single_word = convert.str();
final_word += single_word;
final_word += "! ";
single_word = "";
convert.clear();
return final_word;
最佳答案
如果要重新使用字符串流,还需要通过.str("")
和.clear()
将其内容设置为空白。
但是,等到循环完成之后再提取流内容会更简单:
for (long i : v)
convert << i << "! ";
return convert.str();
如果您关心尾随空格,则可以添加一些代码以删除尾随空格,例如:
auto final_word = convert.str();
if ( !final_word.empty() )
final_word.resize( final_word.size() - 1 );
return final_word;
可能有更优雅的方法可以做到这一点...
关于c++ - 从 vector 中获取字符串流中的值后不会重置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52808037/