首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

为什么STL中判断循环条件都用!=运算符而不用<运算符?该怎么解决

2012-02-23 
为什么STL中判断循环条件都用!运算符而不用运算符?为什么都写成这样:for(vector int ::iteratoritvec

为什么STL中判断循环条件都用!=运算符而不用<运算符?
为什么都写成这样:
for(vector <int> ::iterator   it   =   vec.begin();   it   !=   vec.end();   ++it)
而不是这样:
for(vector <int> ::iterator   it   =   vec.begin();   it   <   vec.end();   ++it)
两者之间有什么区别吗?

[解决办法]
因为迭代器 有时候是不能比较大小的.
比如list
[解决办法]
看过的书上说最好用!=
没说为什么...
[解决办法]
简单的说,STL中,只有随机迭代器支持 <操作,但是所有的五种迭代器都支持!=操作。

读读《Effective STL》,或者《C++标准库》。不过这个问题很多书上都会讲。
[解决办法]
楼上的说得对,!=和 <本身基本不存在效率上的差别.之所以用!=而不用 <,主要就是为了让代码的可用性更高.因为对所有类型的iterator都可以用!=.

热点排行