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对象,因此关联容器不能使用任何写序列元素的算法。

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