固定大小的字符串型容器
Fixed size string type container
本文关键字:字符串型 更新时间:2023-10-16
我需要一个固定大小的字符串类型的某些要求。现在,我一直在做一个简单的char[20]
字符数组来满足这个要求。但是,它缺乏我偶尔需要的某些仍然适合容器的属性。例如,简单的empty()
, clear()
方法经常需要,length
/size
属性或getSize()
方法也可能返回此属性或不管理'/0'的能力。不是实际大小,而是填充容器的字符串的大小。
现在我知道我可以重新实现所有这些,将来当我有时间的时候,我可能会重新实现这些,但现在有没有其他方法来实现这一点?
我假设您希望保留小字符串,避免在访问它时在堆上分配和间接分配。在这种情况下,看看Boost中的small_vector
。
typedef boost::container::small_vector<char> small_string;
这是你想要的字符串。
更新:似乎许多标准c++库的实现都使用了std::string
的小字符串优化(SSO)。这意味着只要你的字符串足够小(例如在64位体系结构上有22个字符),它就会被就地存储。我强烈建议你使用标准的std::string
。
由于问题特别要求固定大小的字符串,当前答案(small_vector
)是错误的,因为它没有固定大小。
最接近的匹配将是@SamVarshavchik在评论中提到的std::array<char, N>
。
相关文章:
- 如何为 C 型字符串数组编写 getter 和 setter?
- C 字符串返回字符串的整数/双精度/长整型值
- 提升不良词法强制转换:将字符串转换为无符号长整型时,无法将源类型值解释为目标
- 将字符串中以十六进制形式存储的负长整型值转换为 C++ 中的长整型变量
- 如何以优雅高效的方式将无符号/有符号整数/长整型转换为 C 字符串?
- 如何在 c++ 中将十六进制字符串转换为长整型字符串
- 将字符串转换为长整型
- C 型字符串作业
- 将字符串存储在无符号长整型的向量中
- 将字符串拆分为 2 个向量.将字符串转换为浮点型时出现问题
- 整型到字符串:不使用stoi库
- 按字符串名称C++泛型对象工厂
- 将十六进制二进制或十进制字符串转换为长整型字符串C++
- c++中的字符串和整型
- c++中字符串到整型的哈希函数
- 字符串流在转换int型时添加新行
- 使用整型变量检查用户输入是整型还是字符串
- 将数字字符串转换为整型,然后再转换为数组
- 从文件中抓取值以查看它们是整型还是字符串
- 固定大小的字符串型容器