如何从STL的const_iterator中获取数据?

Ale*_*lex 4 c++ iterator stl

我有一些像这样运行的东西:

T baseline;
list<T>::const_iterator it = mylist.begin();
while (it != mylist.end()) {
    if (it == baseline) /* <----- This is what I want to make happen */
    // do stuff
}
Run Code Online (Sandbox Code Playgroud)

我的问题是我不知道如何从迭代器中提取数据.我觉得这是一个令人困惑的愚蠢的事情,但我不知道该怎么做.

编辑:修复了begin.end()

Tyl*_*nry 9

迭代器有一个"看起来"像指针的接口(但它们不一定是指针,所以不要把这个比喻太过分).

迭代器表示对容器中单个数据的引用.您想要的是在迭代器指定的位置访问容器的内容.您可以在位置访问内容的it使用*it.同样,您可以使用在位置上的内容it(如果内容是对象)调用方法it->method().

这与你的问题没有关系,但是在寻找(即使我仍然不时地进行)是一个常见的错误:如果位置的内容it指向对象指针,则调用方法对象,语法是(*it)->method(),因为有两个级别的间接.