Heim > Backend-Entwicklung > C++ > Kopiert „std::vector::push_back()' Objekte?

Kopiert „std::vector::push_back()' Objekte?

DDD
Freigeben: 2024-11-03 18:51:29
Original
659 Leute haben es durchsucht

Does `std::vector::push_back()` Copy Objects?

Kopiert std::vector Objekte mit push_back?

Nach umfangreichen Untersuchungen mit Valgrind wurde vorgeschlagen, dass std::vector Erstellt eine Kopie jedes Objekts, das in den Vektor zurückgeschoben wird. Ist diese Behauptung zutreffend? Kann ein Vektor keinen Verweis oder Zeiger auf ein Objekt beibehalten, ohne es zu kopieren?

Antwort:

Ja, std::vector::push_back() tatsächlich erstellt eine Kopie des angegebenen Arguments und fügt es dem Vektor hinzu. Wenn Sie Zeiger auf Objekte innerhalb des Vektors speichern möchten, verwenden Sie std::vector statt std::vector.

Sie müssen jedoch garantieren, dass die von den Zeigern referenzierten Objekte gültig bleiben, während der Vektor einen Verweis auf sie beibehält. Intelligente Zeiger, die auf dem RAII-Idiom basieren, bieten eine Lösung für dieses Problem.

Das obige ist der detaillierte Inhalt vonKopiert „std::vector::push_back()' Objekte?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage