四种iterator的相互转换如下:
理由如下:
- 有些版本的insert和erase函数要求使用iterator。如果你需要调用这些函数,那你就必须使用iterator。const和reverse类型的迭代器不能满足这些函数的要求。
- 要想隐式地将一个const_iterator装换成iterator是不能的。
- 从reverse_iterator装换而来的iterator在使用之前可能需要相应的调整。
由此可见,尽量使用iterator而不是const或reverse类型的迭代器,可以使容器的使用更为简单而有效,并且可以避免潜在的问题。