C++ primer 第十一章

 

1.  除了普通的迭代器,還有下面三種迭代器:

<1> 插入迭代器,實現插入元素的功能。又分爲這樣三種:

(1) back_iterator,創建實用push_back實現插入的迭代器。

(2) front_iterator,使用push_front實現插入。

(3) inserter,使用insert實現插入操作,參數有一個容器和一個迭代器。inserter總是在這個迭代器所標示的位置前面插入新元素。

<2> iostream流迭代器,可與輸入或輸出流綁定在一起,用於迭代遍歷所關聯的io流。只定義了最基本的迭代器操作:自增、解引用、賦值。

.

//下面這段代碼從標準輸入中讀取int型數值,直到不是爲止

istream_iterator<int> in_iter(cin);
istream_iterator<int> eof;
vector<int> vec(in_iter,eof);

 

<3> 反向迭代器,實現反向遍歷。

 

2. 一個既支持--也支持++的迭代器就可以定義反向迭代器,但是流迭代器不可以,由於不能反向遍歷流,因此流迭代器不能創建反向迭代器。

 

3. 按照支持的操作分類,迭代器可分爲五種:

<1> 輸入迭代器:讀,不能寫,只支持自增運算;如istream_iterator

<2> 輸出迭代器:寫,不能讀,只支持自增運算;如ostream_iterator

<3> 前向迭代器:讀和寫,只支持自增運算;

<4> 雙向迭代器:讀和寫,支持自增和自減運算;map、set和list提供雙向迭代器

<5>隨機訪問迭代器:讀和寫,支持完整的迭代器算術運算;streing、vector和deque提供隨機訪問迭代器

 

4. 關聯容器的鍵是const對象,因此關聯容器不能使用任何寫序列元素的算法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章