我知道它的优点之一std::stringstream是std::istream它可以接受来自定义operator<<to的任何类型的输入,也可以接受std::istream来自原始类型的输入。
我不会使用operator<<; 相反,我只是要连接许多字符串。的实现是否std::stringstream比std::string连接许多字符串更快?
我知道它的优点之一std::stringstream是std::istream它可以接受来自定义operator<<to的任何类型的输入,也可以接受std::istream来自原始类型的输入。
我不会使用operator<<; 相反,我只是要连接许多字符串。的实现是否std::stringstream比std::string连接许多字符串更快?
没有理由期望std::string' 附加函数比stringstream' 插入函数慢。std::string通常只不过是可能的内存分配/复制加上将数据复制到内存中。stringstream必须处理语言环境等问题,即使是基本write呼叫。
此外,std::string还提供了最小化或消除除第一次内存分配之外的任何内容的方法。如果你有reserve足够的空间,每个插入都只是一个memcpy. 这对于stringstream.
即使它比std::string' 附加函数更快,您仍然必须将字符串从 中复制出来stringstream才能对其进行处理。所以这是另一个分配 + 副本,你不需要std::string. 尽管至少 C++20 看起来可以消除这种特殊需求。
std::stringstream如果您需要格式化,您应该使用,而不仅仅是将一些字符串粘在一起。