gpt4 book ai didi

c++ - 有没有办法使用 "ostream"来覆盖现有的 std::string 实例

转载 作者:搜寻专家 更新时间:2023-10-31 00:06:05 24 4
gpt4 key购买 nike

我知道各种 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。

最佳答案

std::ostringstream sstream header 的一部分。

这个怎么样:

void appendStuff(string& in) {
ostringstream os;
os << 34 << " bla bla";
in += os.str();
}

关于c++ - 有没有办法使用 "ostream"来覆盖现有的 std::string 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/746735/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com