Als «stdvector» getaggte Fragen

Ein Sequenztyp, der als Teil der Standardbibliothek definiert ist.

168
Kopiert std :: vector die Objekte mit einem push_back?

Nach vielen Untersuchungen mit valgrind bin ich zu dem Schluss gekommen, dass std :: vector eine Kopie eines Objekts erstellt, das Sie push_back möchten. Stimmt das wirklich ? Ein Vektor kann ohne Referenz keine Referenz oder einen Zeiger eines Objekts behalten ?! Vielen

159
C ++ Valarray vs. Vektor

Ich mag Vektoren sehr. Sie sind geschickt und schnell. Aber ich weiß, dass dieses Ding namens Valarray existiert. Warum sollte ich einen Valarray anstelle eines Vektors verwenden? Ich weiß, Valarrays haben syntaktischen Zucker, aber abgesehen davon, wann sind sie

146
C ++, Kopie auf Vektor gesetzt

Ich muss kopieren std::setnach std::vector: std::set <double> input; input.insert(5); input.insert(6); std::vector <double> output; std::copy(input.begin(), input.end(), output.begin()); //Error: Vector iterator not dereferencable Wo ist das

97
Wie mische ich einen std :: vector?

Ich suche nach einer generischen, wiederverwendbaren Möglichkeit, a std::vectorin C ++ zu mischen . So mache ich das derzeit, aber ich denke, es ist nicht sehr effizient, da es ein Zwischenarray benötigt und den Elementtyp kennen muss (DeckCard in diesem Beispiel): srand(time(NULL));...

94
vector :: at vs. vector :: operator []

Ich weiß, dass dies at()langsamer ist als []aufgrund seiner Grenzprüfung, die auch in ähnlichen Fragen wie C ++ Vector bei / [] Operatorgeschwindigkeit oder :: std :: vector :: at () vs Operator [] << überraschende Ergebnisse diskutiert wird !! 5 bis 10 mal langsamer / schneller! . Ich...

84
std :: dynarray vs std :: vector

C ++ 14 präsentiert std::dynarray: std :: dynarray ist ein Sequenzcontainer, der Arrays mit einer Größe kapselt, die bei der Erstellung festgelegt ist und sich während der Lebensdauer des Objekts nicht ändert. std::dynarraymuss zur Laufzeit genauso zugeordnet werden wie std::vector. Was sind also...

71
Ist begin () == end () für einen leeren () Vektor?

Ich habe lange angenommen, dass für jedes leere std::vector V , V.begin() == V.end(). Ich sehe jedoch nichts in der C ++ - Spezifikation, was besagt, dass dies immer wahr ist. Ist es notwendigerweise wahr oder ist es bei den meisten Implementierungen einfach wahr?