list iterator not dereferencable
1)见下程序:想从链表尾部和首部访问,使用链表后出现问题:list iterator not dereferencable。
for(list<Edge>::iterator iterEdge=allEdge.end();iterEdge!=allEdge.begin();iterEdge--)
{
if(!((*iterEdge).flag))
{
lastEdge=*iterEdge;
}
}
2)可以同时用两个迭代器指向同一链表的不同位置,并访问两个不同的迭代器吗?
[解决办法]
#include <iostream> #include <string> #include <list> using namespace std; int main() { string st[5] = {"opensuse","debian","redhat","minix","windows"}; list <string> ilist(st,st+5); list <string>::reverse_iterator it; /* for (it = ilist.begin(); it != ilist.end(); ++it) cout << *it << "----"; cout << endl; */ for (it = ilist.rbegin(); it != ilist.rend(); ++it) cout << *it << "----"; cout << endl; /* cout << *it << endl; //1 ilist.erase(ilist.begin(),ilist.end()); //2 cout << *it << endl; //3 */ return 0; }