2014-03-30 3 views
1

벡터 안에 반복자를 저장하는 데 필요한 서명을 알아낼 수 없습니다. 내 모든 Google foo는 벡터에서 반복자를 사용하는 방법을 보여줍니다.벡터 반복자를 다른 벡터 안에 저장하기

+0

는 항상 다른 컨테이너에 관련된 반복자하고, 절연 부에는 반복자 타입이 없습니다. 컨테이너에 고유 한 반복자를 저장해야하는 경우 @juanchopanza solution ...을보십시오. 반복자를 저장해야한다면 아마도 불가능할 것입니다. – jsantander

+3

이터레이터를 저장하고 나중에 원래 컨테이너를 변경하거나 삭제하면 위험 할 수 있음에 유의하십시오. –

+0

@ user2734679 왜 이것을 필요로합니까? – Drop

답변

6
struct Foo {}; 
std::vector<Foo> v; // vector of Foos 
std::vector<std::vector<Foo>::iterator> vi; // vector of iterators of vector of Foos 
+1

그 타입의 별칭은 친구들이'Foos = std :: vector ;'이라는 결과를 쉽게 읽을 수있는'std :: vector '결과라는 것을 잊지 마십시오. – galop1n

0
std::vector<int> v1 = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; 

std::vector<std::vector<int>::iterator> v2; 
v2.reserve(v1.size()); 

for (std::vector<int>::iterator it = v1.begin(); it != v1.end(); ++it) 
{ 
    v2.push_back(it); 
} 

for (auto it : v2) std::cout << *it << ' '; 
std::cout << std::endl;