gpt4 book ai didi

c++ - 固定大小的字符串类型容器

转载 作者:行者123 更新时间:2023-11-30 03:38:44 26 4
gpt4 key购买 nike

我需要一个固定大小的字符串类型来满足某些要求。现在我一直在做一个简单的 char[20] 字符数组来满足这个要求。但是,它缺少我时不时需要的某些 STL 容器友好属性。例如,一个简单的 empty()clear() 方法经常需要,而且 length/size属性或可能返回此属性的 getSize() 方法或不管理“/0”的能力。不是实际大小,而是填充容器的字符串大小。

现在我知道我可以重新实现所有这一切,而且我可能会在将来有时间的时候重新实现,但是现在还有其他方法可以实现吗?

最佳答案

我假设您希望将小字符串保留在适当的位置,避免在访问它时在堆上进行分配和间接访问。在那种情况下,看看 small_vector来自 Boost。

typedef boost::container::small_vector<char> small_string;

这将作为您想要的字符串。

更新:似乎标准 C++ 库的许多实现都对 std::string 使用了小字符串优化 (SSO)。这意味着只要您的字符串足够小(例如 64 位架构上的 22 个字符),它就会就地存储。我强烈建议您使用标准的 std::string

关于c++ - 固定大小的字符串类型容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39316913/

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