【发布时间】:2010-10-19 07:19:16
【问题描述】:
我知道各种 ostream 都有自己的内部缓冲区。 我必须知道是否有某种 ostream 接受实例 std::string 并在该实例上写入。
(我想避免冗余副本)
注意:我的问题是关于标准库的,不要向我提供其他可以做到这一点的库,我知道它们存在。 :)
编辑:请求更具体...这是我想要的,请考虑以下代码:
std::string str = "bla bla bla ";
std::ospecialstream o(str);
o << 34 << " bla bla";
std::cout << str; //console output : "bla bla bla 34 bla bla"
我想要 ospecialstream 这样它就不会将 str 内容复制到某个内部缓冲区,而是写入 str 的同一个实例。
编辑#2 我出于性能原因需要它,ostringstream 将在使用字符串创建时创建一个 memcopy,并且在检索内容时也会创建一个 memcpy。
【问题讨论】:
-
我严重怀疑这是否能解决您可能遇到的任何性能问题。这是过早的优化。
标签: c++