如何获取迭代器指向的对象的引用?

时间:2014-09-15 10:17:14

标签: c++

我试图从迭代器获取引用,但似乎不可能。所以我会问最好的。

class foo { public: void go() { } };

std::vector<foo> l;
std::vector<foo>::iterator iter = l.begin(), end = l.end();
while (iter != end)
{
    //foo& f  = iter;
    //foo& f2 = &iter;
    //foo& f3 = (foo&)iter;
    f.go();
}

2 个答案:

答案 0 :(得分:4)

你想取消引用迭代器。

foo &f = *iter;

答案 1 :(得分:3)

您还需要取消引用迭代器,因为它具有指针语义:

foo& f = *iter;