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

How to can I get a reference to an object an iterator points too?

本文关键字:对象 引用 何获得 迭代器      更新时间:2023-10-16

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

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();
}
您想要取消引用迭代器。
foo &f = *iter;

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

foo& f = *iter;