我看到它提到的某个地方:
for ( itr = files.begin(); itr < files.end(); ++itr )  // WRONG
for ( itr = files.begin(); itr != files.end(); ++itr ) // ok
为什么第一个表达式错了?我总是使用第一个表达式,并没有任何问题.
Ben*_*igt 21
排序比较,例如<,>,<=,>=将随机访问迭代器,但许多其他的迭代器(如链表双向迭代器)工作仅支持相等性测试(==和!=).通过使用,!=您可以在以后更换容器而无需更改尽可能多的代码,这对于需要使用许多不同容器类型的模板代码尤为重要.
有不同类型的迭代器.只有随机访问迭代器才支持<运算符.其他类型的迭代器(双向,输入,输出和转发)则没有.但是所有迭代器都支持==和!=运算符.因此,如果使用,您的代码将适用于所有类型的迭代器!=.
| 归档时间: | 
 | 
| 查看次数: | 559 次 | 
| 最近记录: |