Sé que varias implementaciones de STL implementan una optimización de "cadena pequeña" donde en lugar de almacenar los 3 punteros habituales para inicio, final y capacidad, una cadena almacenará los datos de caracteres reales en la memoria utilizada para los punteros si sizeof (caracteres) < = sizeof (punteros). Estoy en una situación en la que tengo muchos vectores pequeños con un tamaño de elemento < = sizeof (puntero). No puedo usar matrices de tamaño fijo, ya que los vectores deben poder cambiar el tamaño dinámicamente y pueden crecer bastante. Sin embargo, el tamaño mediano (no medio) de los vectores solo será de 4-12 bytes. Por lo tanto, una optimización de "cadena pequeña" adaptada a vectores sería bastante útil para mí. ¿Existe tal cosa?optimización de cadena pequeña para vector?
Estoy pensando en hacer rodar mi propia fuerza simplemente convirtiendo un vector en una cadena, es decir, proporcionando una interfaz vectorial a una cadena. ¿Buena idea?
Su pregunta no es muy clara. Además, ¿qué quiere decir con una interfaz 'vector' con una' cadena'? ¿Estás hablando de una clase especial 'svector' para contener cadenas pequeñas? – dirkgently
No. Me refiero a una cadena que contiene valores arbitrarios en lugar de tipos de caracteres, como un vector. Una interfaz vectorial a una cadena significa envolver el objeto cadena y exponer una interfaz compatible con vectores, agregando las funciones que faltan como push_back. – BuschnicK
¿No sería más posible hacer algo con el asignador? No obtendría ni siquiera 3 puntos de memoria, ya que el vector también necesita una forma de saber si está en el modo "pequeño" o "grande". – UncleBens