簡介

該頭文件圍繞迭代器展開,定義了一系列與迭代器有關(guān)的概念,但最最最重要的一點(diǎn)就是----它和其它容器一起實(shí)現(xiàn)了C++容器的Iterator設(shè)計模式。

Iterators are a generalization of pointers that allow a C++ program to work with different data structures(containers) in a uniform manner.

上述文字摘自C++14標(biāo)準(zhǔn)草案,簡而言之,迭代器就是對指針的一層封裝,提供了統(tǒng)一的接口

使用迭代器有很多好處:

  • 訪問數(shù)據(jù)內(nèi)容,同時不暴露其內(nèi)部結(jié)構(gòu),降低耦合性。

  • 支持multiple traversal(即同時有多個遍歷發(fā)生)。

  • 提供統(tǒng)一的訪問接口和多態(tài)遍歷(該多態(tài)為靜態(tài)多態(tài),發(fā)生在編譯期)。

詳細(xì)請見設(shè)計模式。

迭代器類別

迭代器主要有5類([iterator-class]代指該類迭代器支持的操作集):