首页 > 解决方案 > 有没有一种标准方法来使用 std::basic_string 与堆栈分配的缓冲区大小大于 SSO,而不是堆

问题描述

是否有一种现有的标准方法std::basic_string可以使用堆栈分配的空间来执行字符串操作,而不是使用堆分配的空间,然后在超过某个大小限制时使用堆空间。

作为对其中一条评论的澄清,我事先知道我将要处理的字符串的大小,所以我想控制堆栈分配缓冲区的大小。

我知道我可以编写一个自定义分配器来执行此操作,但想知道这是否存在于 std 或其他没有十亿依赖项的库中。

它可能看起来像:

std::basic_string<
   char, 
   std::char_traits<char>, 
   my_awesome_stack_then_heap_allocator<char, 255>
> my_string;

想法?

标签: c++stringheap-memoryallocatorstack-memory

解决方案


推荐阅读