【发布时间】:2017-01-12 00:24:24
【问题描述】:
我需要一个固定大小的字符串类型来满足某些要求。现在我一直在做一个简单的char[20] 字符数组来满足这个要求。但是,它缺少我不时需要的某些对 stl 容器友好的属性。例如,一个简单的empty()、clear() 方法非常频繁地需要,并且length/size 属性或getSize() 方法可能会返回此属性或不管理'/0' 的能力。不是实际大小,而是填充容器的字符串大小。
现在我知道我可以重新实现这一切,我可能会在将来有时间时重新实现,但现在还有其他方法可以实现吗?
【问题讨论】:
-
你刚刚描述了一个
std::string。 -
@SamVarshavchik 除非它不是固定大小。例如
std::vector与std::array -
当你想拥有像'clear()'这样的方法时,你不能有一个“固定大小”,它会改变字符串的大小。下定决心:要么你想要一个固定大小的
std::array,例如,在这种情况下你有一个固定大小的数组 - 没有 clear()、empty() 等...... - 或者你想要一个可变长度字符串,又名std::string. -
@SamVarshavchik by clear 在固定大小字符串的上下文中表示用空值填充。
-
那么,使用
std::array<char, 10>。使用fill()将其清除为空。
标签: c++ string c++11 stl containers