
先思考,为什么 STL 中的容器和算法都是用的左闭右开区间?
|
|
|
这样迭代器只需要支持++和!=(或者<或者==)操作就可以方便的进行区间遍历了。
其它区间设置的话,要么得支持<=操作,要么得在循环体内,++操作之前进行!=判定。
换而言之,左闭右开区间的遍历,只需要迭代器支持最少的操作符。



记得封装成一个对象

变量名应该填入first,second,而不是具体名称





先思考,为什么 STL 中的容器和算法都是用的左闭右开区间?
|
|
|
这样迭代器只需要支持++和!=(或者<或者==)操作就可以方便的进行区间遍历了。
其它区间设置的话,要么得支持<=操作,要么得在循环体内,++操作之前进行!=判定。
换而言之,左闭右开区间的遍历,只需要迭代器支持最少的操作符。
记得封装成一个对象
变量名应该填入first,second,而不是具体名称