gpt4 book ai didi

c++ - 使用堆栈分配存储的标准兼容字符串流?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:56:25 25 4
gpt4 key购买 nike

目前在野外似乎找不到任何可用的东西,这看起来很奇怪。

所以在我自己动手之前,有没有人知道在堆栈上分配存储的符合标准的字符串流?

我正在考虑 2 种方法来实现这一目标:

最初在堆栈上使用静态大小的缓冲区(可能是允许编译时自定义的模板参数)

  1. 当空间用完时恢复使用动态存储
  2. 当空间用完时使用alloca增加堆栈存储

这将允许将短于预定大小的字符串快速输入到字符串流中。

选择合适的初始大小意味着可以在不频繁调整堆大小的情况下实现诸如日志记录之类的事情。

最佳答案

您可以使用 std::basic_stringbuf<char, char_traits<char>, pooled_allocator> 获得相同的好处,您只需在其中编写池分配器。

然后创建一个basic_iostream附加到该缓冲区。

或者,创建一个派生自 basic_streambuf 的新类.

但不要重写stringstream . iostreams 库是通过替换缓冲区对象而扩展设计的。

关于c++ - 使用堆栈分配存储的标准兼容字符串流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8620383/

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