读书人

list iterator not dereferencable,该

发布时间: 2012-02-12 17:16:34 作者: rapoo

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)可以同时用两个迭代器指向同一链表的不同位置,并访问两个不同的迭代器吗?


[解决办法]

探讨
我改为:如下也不行呢?
for(list <Edge>::iterator iterEdge=allEdge.end()--;iterEdge!=allEdge.begin();iterEdge--)
{
if(!((*iterEdge).flag))
{
lastEdge=*iterEdge;
}

}

[解决办法]
探讨
for(list <Edge>::iterator iterEdge=allEdge.end()--;iterEdge!=allEdge.begin();iterEdge--)
是不能遍历到第一个元素吧? 怎么才能遍历到第一个元素。。

[解决办法]
C/C++ code
#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; } 

读书人网 >C++

热点推荐