Mova-se com vetor :: push_back
Suponha que eu tenha o seguinte código:
#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));
}
Estou ciente de que os elementos de std :: vector são armazenados contiguamente, ao contrário de um std :: list. No código acimaa2
é movido, mas não há realmente nenhuma cópia dea2
para o vetorva
? Qual é a diferença entreva.push_back(a2);
eva.push_back(move(a2));
?