Vector vordefiniere Größe?
-
Ich hab nen std::vector als member in einer Klasse, und möchte die "reservierte" größe im Konstruktor auf N setzen.
wenn ich dann push_back mache soll er nicht am ende anfügen sonder trotzdem von Anfang an.. es soll lediglich die reservierte Größe im konstruktoraufruf definiert werden, aber wie?
-
So:
class Muh { public: Muh():member(10){} //10 int Elemente reservieren. private: std::vector<int> member; };Aber push_back fügt trotzdem immer neue Elemente ans Ende an. Du musst über den Index/einen Iterator auf die Elemente zugreifen.
-
Keine zwei Sekunden google bemüht:
http://www.cppreference.com/cppvector/reserve.html
-
ja ich kenne die reserve Methode. Aber wie ruf ich die im Konstruktor (initialisierungsliste) auf? Das war die Frage.
-
Garnicht.
Stell die funktion halt in den Rumpf vom ctor

-
in der initialisierungsliste garnicht, du initialisierst den vector mit 0 elementen und rufst sein reserve() dann im Ctor body auf.
class Muh { public: Muh() : member() // 0 Elemente. { member.reserve(10); // Platz für 10 Elemente reservieren } private: std::vector<int> member; };