STL設計的精髓在于,把容器(Containers)和算法(Algorithms)分開,彼此獨立設計,最后再用迭代器(Iterator)把他們粘 合在一起??梢姷髟赟TL中的重要程度。迭代器已經作為一種設計思想被記錄與《設計模式》中,它的意圖在于“提供一種方法順序訪問一個聚合對象中的各 個元素,而又不需暴露該對象的內部表示”。
迭代器的作用其實相當于一個智能指針,它指向容器內部的數據,可以通過operator *操作符來解指針獲得數據的值,也可以通過operator ->操作符來獲取數據的指針,還能夠重載++,--等運算符來移動指針。
迭代器的分類
迭代器大致可以分為以下幾種:
1、Input Interator :只允許作為輸入,也就是只讀(Read Only)
2、Output Interator :只允許作為輸出,也就是只寫(Write Only)
3、Forward Interator :允許讀寫,但只能做前向移動
4、Bidirectional Interator :允許讀寫,可以做雙向移動
5、Random Access Interator :允許讀寫,可以任意移動
struct input_iterator_tag {};
struct output_iterator_tag {};
struct forward_iterator_tag : public input_iterator_tag {};
struct bidirectional_iterator_tag : public forward_iterator_tag {};
struct random_access_iterator_tag : public bidirectional_iterator_tag {};
posted on 2011-01-07 09:58
老馬驛站 閱讀(277)
評論(0) 編輯 收藏 引用 所屬分類:
c++