Luc*_*ima 26 c++ string performance iostream stringstream
我何时应该使用stringstream而不是string::append()?假设我要安排字符串.
stringstream ss;
ss << str1 << "str2" << ...
Write(ss.str());
Run Code Online (Sandbox Code Playgroud)
要么:
string str;
str.reserve(10000);
str.append(str1);
str.append("str2");
...
Write(str);
Run Code Online (Sandbox Code Playgroud)
哪个更快?
Pra*_*ian 20
我不知道哪一个会更快,但如果我不得不猜测我会说你的第二个例子,特别是因为你已经调用了reserve成员函数来为扩展分配一个大空间.
如果你只是连接字符串使用string::append(或string::operator+=).
如果您要将数字转换为字符串表示形式,并在转换过程中格式化它们,然后将转换结果附加在一起,请使用字符串流.我明确提到格式化部分,因为如果你不需要格式化C++ 11提供std::to_string可用于将数字类型转换为字符串的提供.
ani*_*nio 18
string.append要快得多.特别是当你保留.
如果你只连接字符串,我会使用string.append.我只需要在需要自动将非字符串转换为字符串时使用stringstream,例如:
const int x(42);
stringstream ss;
ss << "My favorite number is: " << x << std::endl;
Run Code Online (Sandbox Code Playgroud)
这里stringstream自动将x转换为字符串并附加它.我不需要打电话给atoi.Stringstream将自动为您转换所有基本类型.这个目的很棒.
此外,如果您只是将数据导入stringstream,以便稍后将其转换为字符串.您可以使用ostringstream作为输出.
我希望有所帮助.
| 归档时间: |
|
| 查看次数: |
20957 次 |
| 最近记录: |