Heim > Backend-Entwicklung > C++ > So verkleinern Sie einen std::vector auf seine tatsächliche Größe: Der Swap-Trick erklärt

So verkleinern Sie einen std::vector auf seine tatsächliche Größe: Der Swap-Trick erklärt

Barbara Streisand
Freigeben: 2024-10-26 07:05:03
Original
502 Leute haben es durchsucht

How to Shrink a std::vector to its Actual Size: The Swap Trick Explained

Verkleinerung eines std::Vector: Der Swap-Trick

Um die Kapazität eines std::vector zu reduzieren, wenn der reservierte Platz nein ist Ist dies nicht länger erforderlich, kann der von Scott Meyers in seinem Buch „Effective STL“ empfohlene „Swap-Trick“ angewendet werden. So funktioniert es:

  1. Neuen Vektor mit der gewünschten Kapazität erstellen:
vector<Person> new_persons(size_of_new_vector);
Nach dem Login kopieren
  1. Inhalte austauschen des ursprünglichen und des neuen Vektors:
new_persons.swap(persons);
Nach dem Login kopieren

Nach dem Austausch wird der ursprüngliche Vektor, Personen, „passend verkleinert“, was bedeutet, dass er nur den Speicher belegt, der für erforderlich ist die Anzahl der Elemente, die er derzeit enthält.

Diese Technik nutzt den Kopierkonstruktor des Vektors, der Speicher nur für die kopierten Elemente zuweist und so die überschüssige Kapazität des Originalvektors effektiv reduziert.

Das obige ist der detaillierte Inhalt vonSo verkleinern Sie einen std::vector auf seine tatsächliche Größe: Der Swap-Trick erklärt. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage