【发布时间】:2018-02-25 19:25:16
【问题描述】:
我想用字符串向量中的内容填充 istringstream 对象。有没有一种优雅的方式来做到这一点?我现在正在做以下事情,这不太好:
vector<string> vec = {"apple", "banana", "dog", "cat"};
string one_str;
for (string s: vec) {
one_str += s + " ";
}
istringstream iss(one_str);
请注意,我要填充 istringstream 而不是 stringstream 或 ostringstream
【问题讨论】:
-
这种方法有什么问题? (除非你应该使用
string& s不复制) -
@ShashwatKumar:这个问题涉及满足此要求的一种方法,但并不排除另一种更优雅的方法。
-
萨哈,这取决于你所说的“优雅”。您可以使用向量的内容创建一个流缓冲区并将此缓冲区设置为 istringstream 对象(请参阅 ios::rdbuf (cplusplus.com/reference/ios/ios/rdbuf))。这样您就可以避免创建临时缓冲区(您的 one_str..)。