我无法弄清楚在向量中存储迭代器所需的签名。我所有的谷歌foo只是告诉我如何在向量上使用迭代器。
答案 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;