Was ist der Unterschied zwischen resize und reserve?
-
Was ist der Unterschied zwischen resize und reserve?
:xmas1: :xmas1: :xmas1: :xmas1: :xmas1:
-
Hassu keine Referenz? :xmas2:
-
Doch ich hab schon in 2 Stück nachgeschaut, aber ich verstehe den Unterschied trotzdem nicht.
:xmas1:
-
Hallo!
void reserve(size_type n)
reserviert Speicherplatz für n-Elemente. Es werden keine neuen Elemente initialisiert!! Die grösse des Vektors bleibt demnach unverändert, d.h. size() liefert vor und nach dem Aufruf von reserve() den gleichen Wert. Falls n kleiner ist, als size(), dann geschieht gar nix. capacity() liefert also nach reserve() mindestens den Wert n zurück
void resize(size_type n, T m=T())
hängt n-Mal das Element m an. Das 2. Argument kann weggelassen werden, dann wird einfach der Standardkonstruktor aufgerufen. Ist n kleiner als size(), dann werden die überzähligen Elemente gelöscht!!! Nach resize() liefert size() genau den Wert n.
Die Konsequenz: Wenn der Vektor einfach voll ist und Du brauchst nur mehr Platz, dann verwende reserve(). Dann kannst Du wieder neue Elemente einfügen!
-
Die Konsequenz: Wenn der Vektor einfach voll ist und Du brauchst nur mehr Platz, dann verwende reserve(). Dann kannst Du wieder neue Elemente einfügen!
der vector allokiert auch automatisch Speicherplatz, wenn keiner mehr vorhanden ist. Der Aufruf dient nur dazu, wenn du weisst, wieviele Objekte du gleich speichern willst, damit der vector weiss wie viel Speicher er allokieren muss.