假设我有以下代码:
#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));
?