Beim Aufrufen der Methode push_back
von std::vector
wird die Größe um eins erhöht, was die Erstellung einer neuen Instanz impliziert, und dann wird der übergebene Parameter in dieses kürzlich erstellte Element kopiert, richtig? Beispiel:Größenänderung versus push_back in std :: vector: vermeidet es eine unnötige Kopierzuweisung?
myVector.push_back(MyVectorElement());
Na dann, wenn ich die Größe des Vektors mit einem Elemente einfach mit den Standardwerten erhöhen will, wäre es nicht besser, anstatt die resize
Methode zu verwenden? Ich meine, wie folgt aus:
myVector.resize(myVector.size() + 1);
Soweit ich sehen kann, das genau das Gleiche erreichen würde würde aber die völlig unnötige Zuordnung Kopie der Attribute des Elements vermeiden.
Ist diese Argumentation richtig oder fehlt mir etwas?
Warum ein Akronym verwenden, wenn Sie es trotzdem buchstabieren?: P – GManNickG
Um es in einer zukünftigen Frage verwenden zu können, ohne es wieder buchstabieren zu müssen ...;) – Chuim
Nach was ich gesucht habe, wenn ich diese Frage gestellt habe, war zu wissen, ob die Argumentation richtig war. Bei Verwendung eines Vektors mit Elementen, die teuer zu erstellen sind, verwende ich Boost Smart Pointer zu den tatsächlichen Instanzen ... – Chuim