函数,迭代器,比较运算符的问题
- 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 的迭代器仅仅支持 !=.