我有一些像这样运行的东西:
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()
迭代器有一个"看起来"像指针的接口(但它们不一定是指针,所以不要把这个比喻太过分).
迭代器表示对容器中单个数据的引用.您想要的是在迭代器指定的位置访问容器的内容.您可以在位置访问内容的it使用*it.同样,您可以使用在位置上的内容it(如果内容是对象)调用方法it->method().
这与你的问题没有关系,但是在寻找(即使我仍然不时地进行)是一个常见的错误:如果位置的内容it是指向对象的指针,则调用方法对象,语法是(*it)->method(),因为有两个级别的间接.
| 归档时间: |
|
| 查看次数: |
6784 次 |
| 最近记录: |