컨테이너가 연속적이며 동시에 이동 의미를 지원할 수있는 방법은 무엇입니까? 연속적인 저장소 컨테이너와 이동 의미 체계
표준 : : 벡터 예
:와 push_back()가 좌변에 표준 : : 이동을 사용하여 호출됩니다 :std::vector<MyClass> v;
MyClass obj;
MyClass obj2;
vt.push_back(std::move(obj));
vt.push_back(std::move(obj2));
OBJ 반드시 메모리에 서로 옆에 obj2보다 할당되지 않습니다. 이제 벡터가 연속적인 메모리에 요소를 가져야하므로이 경우 의미를 이동시키는 방법은 무엇입니까? 그것은 obj2를 벡터 v의 인접한 메모리 영역 (obj 옆)에 복사해야만한다. 그렇지 않으면 인접성 요구 사항이 충족되지 않을 것이다. 그러나 그것은 복사본이 아니라 움직이기를 요구합니다. 위의이 다음
MyClass obj;
MyClass obj2;
vt.push_back(std::move(obj));
vt.push_back(obj2);