读书人

函数迭代器比较运算符的有关问题

发布时间: 2012-05-01 12:48:58 作者: rapoo

函数,迭代器,比较运算符的问题

C/C++ code
bool find(list<int>::iterator iterFirst, list<int>::iterator iterSecond, int i){    list<int>::iterator tmp;    //不知道为什么不能使用>和<运算符,==和!=可以用,是编译时出的错。    if(iterFirst > iterSecond)//error!    {        tmp = iterFirst;        iterFirst = iterSecond;        iterSecond = tmp;    }    for(tmp = iterFirst; tmp != iterSecond; ++ tmp)    {        if(*tmp == i)            return true;    }    return false;}

不能使用大于和小于运算符,等于和不等却可以用,main函数中两个迭代器指向同一个list<int>类型,所以可以使用大于和小于运算符的。

[解决办法]
迭代器 分 双向和随机的。
只有随机的支持 <
list 是双向的,不支持随机的,所以 list 的迭代器仅仅支持 !=.

读书人网 >C++

热点推荐