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));
?