gpt4 book ai didi

c++ - 从 vector 中获取后,字符串流中的值不会重置

转载 作者:行者123 更新时间:2023-11-28 01:28:19 24 4
gpt4 key购买 nike

我正在尝试获取一个 vector 的值并将它们并排列出,并在每个数字后加上感叹号。

输入是长 vector 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com