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