007
17.09.2003, 08:09 Uhr
virtual
Sexiest Bit alive (Operator)
|
@windalf Du musst bei std::vector unterscheiden zwischen "Kapazität" und "Größe". Die Größe eines Vektors entspricht der Anzahl der Elemente, die er enthält. Diese Größe kannst du mit der size() methode abfragen. Verändert wird sie allein durch hinzufügen oder entfernen von Elementen. Die Kapazität gibt an, wie viele Elemente der Vektor aufnehmen könnte, ohne daß er intern diesen Vergrößern müßte. Die Kapaziztät wird implicit bei Einfügeoperation heraufgesetzt oder explizit mit reserve() gesetzt, Abfragen kann man sie mit capacity(). Generell gilt: 1. v.size() <= v.capacity() 2. Nur die Elemente mit einem Index <v.size() sind initialisiert; für alle anderen ist zwar Speicher belegt, aber niemals ein Constructor aufgerufen worden. Ein Umstand, der bei int Elementen nicht auffallen mag.
Das nur so als Erklärung zwischendurch. In deinem Fall solltest Du also v.size() an Stelle von der nicht existent Funktion [v.reserved()[/i] benutzen.
C++: |
std::vector<int> v(10, 4711);
|
Würde dir übrigens einen Vektor machen, der 10 Elemente mit dem Wert 4711 hat. -- Gruß, virtual Quote of the Month Ich eß' nur was ein Gesicht hat (Creme 21) Dieser Post wurde am 17.09.2003 um 08:10 Uhr von virtual editiert. |