在另一个向量内存储矢量迭代器

时间:2014-03-30 09:44:57

标签: c++ vector iterator

我无法弄清楚在向量中存储迭代器所需的签名。我所有的谷歌foo只是告诉我如何在向量上使用迭代器。

2 个答案:

答案 0 :(得分: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 :(得分: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;