繁体   English   中英

std :: string追加太慢?

[英]std::string append too slow?

我遇到的一种情况是,我从结构中读取数据,并不断将其追加到字符串中,以便可以通过套接字发送数据。 当数据很大时,此操作将花费大量时间。 有人可以提出其他选择吗?

我有一个结构

struct fileInfo {int file_id; 字符文件名[16]; 双标签 }

我执行std :: stringstream >> file_id和stringstream.str(),对每个值重复此操作,并将其附加到字符串并发送

<sstream> std::ostringstream专为该操作模式而设计。

ostringstream my_text;
my_text << "hello " << 2 << foo << endl; // efficiently catenate

socket.send( my_text.str() ); // get a std::string to handle data

也许您应该单独发送字符串。 如果您有流媒体套接字,则这应与另一端接收数据的方式没有任何区别。

一种选择是使用std :: stringstream 仅当您提供更具体的信息时,才能提供更具体的帮助。 您正在流式传输什么样的数据? 数据块有多大?

如果您可以粗略估计该字符串的大小,可以先使用std :: string :: reserve()以避免以后不必要的重新分配。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM