Przenieś za pomocą vector :: push_back

Załóżmy, że mam następujący kod:

#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));
}

Wiem, że elementy std :: vector są przechowywane w sposób ciągły, w przeciwieństwie do listy std ::. W powyższym kodziea2 jest przenoszony, ale czy naprawdę nie ma kopiowaniaa2 do wektorava? Jaka jest różnica pomiędzyva.push_back(a2); iva.push_back(move(a2));?

questionAnswers(3)

yourAnswerToTheQuestion