可以在任何容器上运作:
而下面这样的程序代码就不是所有容器都适用了:
两者的唯一区别在于测试循环条件时,第二例使用operator<,第一例使用operator!=。要知道,只有random access iterators才支持iperator<,所以第二例中的循环对于lists、sets和maps无法运作。为了写出适用于任何容器的泛型程序代码,你应该使用operator!=而非operator<。不过如此一来,程序代码的安全性可能有损,因为如果pos的位置在end()的后面,你未必便能发现。