를 내가 두 벡터를 가지고 하나에 결합 할 경우에, 나는 그것을 다음과 같은 방법을 수행 할 수 있습니다 내가 피하려고하는,하지만 복사를 포함"이동"두 벡터 함께
std::vector<T> a(100); // just some random size here
std::vector<T> b(100);
a.insert(std::end(a), std::begin(b), std::end(b));
. 그들을 움직이기 위해 움직이는 의미를 사용할 방법이 있습니까?
vector
은 인접한 것으로 간주되므로 매우 의심 스럽습니다. 그러나 deque
으로 할 수있는 방법이 있습니까? 당신이 이동 반복자를 사용할 수 있습니다, 또는
#include <algorithm>
std::move(b.begin(), b.end(), std::back_inserter(a));
을 :
감사합니다. 이제 왜 cppreference에 두 가지 버전의'std :: move'가 있는지 압니다. 나는 항상 버그라고 생각하고 두 번째 버전을 확인하지 않았다. – inf
나는'움직임 '또한 알고리즘이라고 완전히 놓쳤다. – bames53
@ bames53 나에게도 똑같은 일이 있지만, 듣고 나서, 그것은 '복사'가 있기 때문에 완전한 의미를가집니다. – inf