벡터 목록의 벡터 내용을 벡터로 복사하는 가장 효율적인 방법을 찾고 있습니다. 가능한 한 메모리 재 할당을 피하고 싶습니다. 내가 가진 :C++ : 효율적인 벡터 목록 벡터 복사
내 문제는 다음과
std::vector<int> v
포함하는 N 요소벡터
std::vector< std::vector<int>* > vlist
의 목록과 내가 알고있는 요소의 총 수 vlist의 벡터에서 M은 < = N (N과 M은 매우 클 수 있음)
vlist의 모든 요소 (vlist [0]의 첫 번째 요소, 그리고 vlist [1] 등 ...)의 모든 요소를 복사하고 끝에 v 크기를 줄이려고합니다. ~ M (내 프로젝트는 C++ 2011을 사용하지 않는다).
가능한 한 효율적으로 수행하는 방법은 무엇입니까?
대단히 감사합니다.
편집 : 비고 : V 이미 N 요소로 가득 내가 요소를 다른 벡터에서 오는 M (= N은 <)로 교체하고 싶습니다. 이것은 가장 효율적인 방법 경우
메모리 할당을 피하려면 실제로 복사본을 얻을 수 없으므로 참조를 얻을 수 있습니다. 객체를 참조하거나 복사본을 만들 수 있습니다. 가장 직관적 인 옵션은 복사 할 때 메모리를 다시 사용하여 메모리 할당을 줄이는 것입니다. 벡터에'int's가 포함되어 있기 때문에 스택에 놓아서 힙에 할당하는 것보다 빠르다. – Kiril