Je sais que plusieurs implémentations STL implémentent une optimisation "small string" où au lieu de stocker les 3 pointeurs habituels pour begin, end et capacity une chaîne stockera les données de caractères dans la mémoire utilisée pour les pointeurs si sizeof (caractères) < = sizeof (pointeurs). Je suis dans une situation où j'ai beaucoup de petits vecteurs avec une taille d'élément < = sizeof (pointeur). Je ne peux pas utiliser des tableaux de taille fixe, car les vecteurs doivent être capables de redimensionner dynamiquement et peuvent potentiellement devenir assez volumineux. Cependant, la taille médiane (non moyenne) des vecteurs ne sera que de 4 à 12 octets. Donc une optimisation "petite chaîne" adaptée aux vecteurs me serait très utile. Est-ce qu'une telle chose existe?petite optimisation de chaîne pour le vecteur?
Je pense à lancer le mien par simple force brute en convertissant un vecteur en chaîne, c'est-à-dire en fournissant une interface vectorielle à une chaîne. Bonne idée?
Votre question n'est pas très claire. De plus, que voulez-vous dire par une interface 'vector' à une' string'? Parlez-vous d'une classe 'svector' spéciale pour contenir de petites chaînes? – dirkgently
Non. Je veux dire une chaîne contenant des valeurs arbitraires au lieu de types de caractères - tout comme un vecteur. Une interface vectorielle à une chaîne signifie l'encapsulation de l'objet chaîne et l'exposition d'une interface compatible avec le vecteur, en ajoutant les fonctions manquantes comme push_back. – BuschnicK
Ne serait-il pas possible de faire quelque chose avec l'allocateur? Vous n'obtiendrez même pas 3 pointeurs de mémoire, car le vecteur a également besoin d'un moyen de savoir s'il est dans le mode "petit" ou "grand". – UncleBens