Bewegen Sie sich mit vector :: push_back

Angenommen, ich habe den folgenden Code:

#include <vector>
struct A {
    int a;
    int x;
};
int main() {
    using namespace std;
    A a1;
    A a2;
    vector<A> va;
    va.push_back(a1);
    va.push_back(move(a2));
}

Mir ist bekannt, dass die Elemente von std :: vector im Gegensatz zu einer std :: list zusammenhängend gespeichert werden. Im obigen Codea2 ist umgezogen aber gibt es wirklich kein kopieren vona2 zum Vektorva? Was ist der Unterschied zwischenva.push_back(a2); undva.push_back(move(a2));?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage