Réduire la taille d'un std::Vector : l'astuce du swap
Pour réduire la capacité d'un std::vector lorsque l'espace réservé est nul n'est plus nécessaire, le "swap trick" recommandé par Scott Meyers dans son livre "Effective STL" peut être utilisé. Voici comment cela fonctionne :
vector<Person> new_persons(size_of_new_vector);
new_persons.swap(persons);
Après avoir effectué l'échange, le vecteur original, les personnes, sera "rétréci pour s'adapter", ce qui signifie qu'il n'occupera que la mémoire nécessaire pour le nombre d'éléments qu'il contient actuellement.
Cette technique exploite le constructeur de copie du vecteur, qui alloue de la mémoire uniquement pour les éléments copiés, réduisant ainsi la capacité excédentaire du vecteur d'origine.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!