我正在遍历两个 STL 列表(L1、L2),如下所示:
list<int>::const_iterator itr1 = L1.begin();
list<int>::const_iterator itr2 = L2.begin();
for (itr1; itr1 != L1.end(); itr1++) {
if (*itr1 < *itr2) {
//some code
}
}
它编译得很好,但是当我运行它时,它说“表达式:列表迭代器不可取消引用”
现在在课堂上,我们制作了 STL 列表的模拟版本,我们在其中编写了自己的 STL 列表,并且我们重载了 *operator 以取消引用迭代器。但是,显然它在这里不起作用。
如何取消引用迭代器,或者如果 STL 列表以不同的方式执行,它是如何执行的。我浏览了这个:
http://www.sgi.com/tech/stl/List.html
文档并且似乎没有找到任何接受成员“引用”但仍然没有看到如何引用迭代器指向的内容,除非它是列表的第一部分或最后一部分。
有人知道这里发生了什么吗?谢谢
这是一个粘贴箱: