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