Переместить с вектором :: push_back
Предположим, у меня есть следующий код:
#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));
}
Мне известно, что элементы std :: vector хранятся непрерывно, в отличие от std :: list. В приведенном выше кодеa2
перемещен, но действительно ли нет копированияa2
к векторуva
? В чем разница междуva.push_back(a2);
а такжеva.push_back(move(a2));
?