我循环通过两个STL列表(L1,L2),像这样:取消引用C++ STL列表迭代器
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
}
}
它编译罚款,但是当我运行它,它说:“表达式:列表迭代器不dereferencable”
现在在课上,我们制作了一个STL列表的模拟版本,我们编写了自己的STL列表,并且我们重载了*运算符来取消引用迭代器。但是,显然这不是在这里工作。
如何取消引用迭代器,或者如果STL列表以不同的方式执行,它是如何执行的。我通过这个看:
http://www.sgi.com/tech/stl/List.html
文档和似乎没有找到任何接受会员“引用”,但仍然没有看到如何引用什么的迭代器指向,除非它是第一个或最后一个列表的一部分。
任何人都知道这里发生了什么?谢谢
这里是一个引擎收录:
我做了我最好的猜测答案,但是当我编译上面的代码只是正常工作。您可能需要添加操作系统和编译器详细信息。 – 2011-04-27 01:15:39
发布一些完整的代码来显示问题的好地方是http://pastebin.com和http://codepad.org – 2011-04-27 01:18:11
例如,我从此做出了一个程序,并将它放在键盘上:http:// codepad .org/JgMBNAiW – 2011-04-27 01:22:04