我知道几乎所有的STL实现都有一个“小字符串”优化,即如果sizeof(characters) <= sizeof(pointers),则字符串会将实际字符数据存储在用于指针的内存中,而不是存储通常的起始、结束和容量3个指针。现在我有很多元素大小<= sizeof(pointer)的小向量,但需要动态调整大小并且可能会变得相当大。 但是,向量的中位数(而不是平均数)大小只有4-12个字节。因此,对向量进行“小字符串”优化对我来说非常有用。是否存在这样的优化?
我在考虑通过简单地将向量转换为字符串(即提供一个向量接口到字符串),来自行进行这项操作。这样做好吗?
svector
类来保存小字符串吗? - dirkgentlytemplate<class T> using small_vector = std::basic_string<T>;
,是否可以得到非常接近小向量优化的东西?(至少对于pod类应该有效)。 - alfC