构建琴弦以添加
Constructing strings for appending
我必须通过连接其他一些字符串来构造字符串。我也知道字符串的最大尺寸,我想保留容量,因此没有重新分离。我的代码现在看起来像这样:
#include <string>
using std::string;
// Setup
...
string a,b,c;
// Strings are filled with relevant data
...
string msg;
msg.reserve(200);
msg = "A="; msg += a; msg += ',';
msg += "B="; msg += b; msg += ',';
msg += "C="; msg += c; msg += '.';
i先前为此使用了stringstream
,但性能是慢的两倍。有没有办法保留施工时的弦乐能力,而不必两次分配内存?还有一个更好(更快(附加字符串的方法吗?
是否有一种方法可以保留施工时的字符串能力,而不必两次分配内存?
这里没有"两次分配内存"。您正确创建一个字符串,然后要求它保留一些内存。除了保留更准确的数量(而不是猜测200
(,您还可以。
从技术上讲,实现允许以未指定的容量开始,但是您可能会看到小弦优化的结果(std::string
本身内的静态分配缓冲液,在某些情况下避免动态分配(而不是使用此功能。
如果您真的很担心它,则可以用200个