cpp / intermediate
Snippet
Präventive Speicherreservierung für Vektoren
Durch die Verwendung von .reserve() setzen Sie manuell die Kapazität eines Vektors. Dies ist eine entscheidende Leistungsoptimierung, wenn die ungefähre Anzahl der Elemente im Voraus bekannt ist, da es teure Neuzuweisungen und das Kopieren von Daten während des Wachstums verhindert.
snippet.cpp
cpp
1
2
3
4
5
6
7
8
9
10
11
12
#include <vector>#include <iostream>void fillVector() {std::vector<int> values;values.reserve(1000); // Allocate memory upfrontfor (int i = 0; i < 1000; ++i) {values.push_back(i); // No reallocations occur here}std::cout << "Capacity: " << values.capacity() << std::endl;}
Erklärung
1
values.reserve(1000);
Reserviert Speicher für 1000 Integer, ohne die Größe (Anzahl der tatsächlichen Elemente) des Vektors zu ändern.
2
values.push_back(i);
Fügt Elemente effizient hinzu, da der Platz bereits garantiert vorhanden ist.