我什么时候应该使用 stringstream
而不是 string::append()
?
假设我要连接字符串。
stringstream ss;
ss << str1 << "str2" << ...
Write(ss.str());
或者:
string str;
str.reserve(10000);
str.append(str1);
str.append("str2");
...
Write(str);
哪个更快?
最佳答案
我不知道哪个会更快,但如果我不得不猜测我会说你的第二个例子是,特别是因为你调用了 reserve
成员函数来分配一个大扩展空间。
如果您只是连接字符串,请使用 string::append
(或 string::operator+=
)。
如果您要将数字转换为其字符串表示形式,并在转换期间对其进行格式化,然后将转换结果附加在一起,请使用字符串流。我明确提到了格式化部分,因为如果您不需要格式化 C++11 提供 std::to_string
可用于将数字类型转换为字符串。
关于c++ - 什么时候应该使用字符串而不是字符串流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12118899/