Initialisieren std::vector mit default-Konstruktor
Habe ich eine Klasse Feld, die einen std::vector. Ich weiß, wie viele Elemente möchte ich in diesem Vektor enthalten: N. Wie kann ich initialisiert den Vektor mit N Elementen?
Beziehen Sie sich auf die ersten Größe oder der ersten Kapazität?
Anfängliche Größe, denke ich. Ich verstehe nicht ganz Folgen. Beziehen Sie sich auf mit reserve() mit reserve-Kapazität?
Ja, bin ich. Lassen Sie es mich in einer anderen Art und Weise: wollen Sie Ihren Vektor zunächst haben N Elemente, oder willst du deinen vector in der Lage sein zu wachsen, um N Elemente ohne Umverteilung?
Zunächst haben N Elemente, hier die Antworten von James und Jerry waren genau das, was ich suchte.
Anfängliche Größe, denke ich. Ich verstehe nicht ganz Folgen. Beziehen Sie sich auf mit reserve() mit reserve-Kapazität?
Ja, bin ich. Lassen Sie es mich in einer anderen Art und Weise: wollen Sie Ihren Vektor zunächst haben N Elemente, oder willst du deinen vector in der Lage sein zu wachsen, um N Elemente ohne Umverteilung?
Zunächst haben N Elemente, hier die Antworten von James und Jerry waren genau das, was ich suchte.
InformationsquelleAutor Himadri Choudhury | 2011-03-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
std::vector
hat einen Konstruktor deklariert als:Können Sie es verwenden, um zu konstruieren, das
std::vector
mitN
Kopienx
. Der Standardwert fürx
ist ein Wert initialisiertT
(wennT
ist ein Klasse Typ mit einem Standard-Konstruktor dann Wert-Initialisierung ist default-Bau).Es ist einfach zu initialisieren einer
std::vector
Daten-member verwenden Sie diesen Konstruktor:emplace_back
.Gut, dass ein element Standard konstruiert hier :-). In C++0x, den Konstruktor, die ich erwähnen, ist, dass eigentlich zwei Konstruktoren:
vector(size_type N)
undvector(size_type N, const T& x)
. Der erste Wert initialisiert dasN
Elemente und nicht, rufen Sie eine copy-Konstruktoren. Dieresize
Funktion ebenso wurde aufgeteilt in zwei überladungen.Der parameter ist standardmäßig aufgebaut, aber es ist nicht ein Vektor-element. Gut zu wissen, dass in C++0x gibt es nun zwei Implementierungen anstelle eines Standard-argument.
InformationsquelleAutor James McNellis
InformationsquelleAutor Jerry Coffin
Alle Konstruktoren, die Ihnen erlauben, um eine Größe festzulegen, die auch aufrufen des element-Konstruktor. Wenn die Effizienz im Vordergrund steht, können Sie die
reserve()
Mitglied-Funktion zum reservieren der Größe. Diese eigentlich nicht zu schaffen, alle Elemente, so ist es effizienter. In den meisten Fällen, wenn die Versorgung der Größe durch die Vektor-Konstruktor ist einfach nur gut.InformationsquelleAutor dappawit