gpt4 book ai didi

c++ - 将 std::ostringstream 写入文件而不进行复制?

转载 作者:太空狗 更新时间:2023-10-29 19:46:53 26 4
gpt4 key购买 nike

给定一个将输出字符串流作为参数的函数:

void Foo(const std::ostringstream& _oss);

有什么办法可以不必调用 str() 就可以将流缓冲区写入文件吗?

我想避免复制缓冲区(str() 所做的)。

void Foo(const std::ostringstream& _oss);
{
std::ofstream f("foo.bin");

//WANT: write _oss to f without copying the buffer?
}

最佳答案

有一个 operator<<()获取流缓冲区:

f << _oss.rdbuf();

但是,缓冲区需要非常大才能产生显着差异。通常,无论如何,写入磁盘将占主导地位。

请注意,我会避免创建带有前导下划线的标识符。

关于c++ - 将 std::ostringstream 写入文件而不进行复制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6336387/

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