Maison > développement back-end > C++ > le corps du texte

Est-ce que std::vector copie les objets sur Push_back() ?

Linda Hamilton
Libérer: 2024-11-04 04:44:01
original
411 Les gens l'ont consulté

Does std::vector Copy Objects on Push_back()?

Est-ce que std::vector copie des objets sur push_back() ?

Après des enquêtes utilisant Valgrind, un utilisateur a conclu que std::vector crée copies d'objets lors de l'exécution de push_back(). Cela soulève la question :

Std::vector ne peut-il pas stocker des références ou des pointeurs sans copier ?

Malheureusement, la réponse est affirmative. std::vector::push_back(), tel que conçu, crée une copie de l'objet passé en argument et la stocke dans le vecteur.

Alternatives pour éviter la copie :

Si le comportement souhaité est de stocker des pointeurs ou des références au lieu de copies, envisagez d'utiliser un std::vector ou std::vector>.

Attention :

Lorsque vous utilisez des pointeurs ou des références, assurez-vous que les objets référencés restent valides tout au long la durée de vie du vecteur. L'utilisation de pointeurs intelligents qui utilisent l'acquisition de ressources avec initialisation (RAII) peut résoudre efficacement ce problème.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!