博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++ primer 第十一章
阅读量:4036 次
发布时间:2019-05-24

本文共 778 字,大约阅读时间需要 2 分钟。

 

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

<1> 插入迭代器,实现插入元素的功能。又分为这样三种:

(1) back_iterator,创建实用push_back实现插入的迭代器。

(2) front_iterator,使用push_front实现插入。

(3) inserter,使用insert实现插入操作,参数有一个容器和一个迭代器。inserter总是在这个迭代器所标示的位置前面插入新元素。

<2> iostream流迭代器,可与输入或输出流绑定在一起,用于迭代遍历所关联的io流。只定义了最基本的迭代器操作:自增、解引用、赋值。

.

//下面这段代码从标准输入中读取int型数值,直到不是为止istream_iterator
in_iter(cin);istream_iterator
eof;vector
vec(in_iter,eof);

 

<3> 反向迭代器,实现反向遍历。

 

2. 一个既支持--也支持++的迭代器就可以定义反向迭代器,但是流迭代器不可以,由于不能反向遍历流,因此流迭代器不能创建反向迭代器。

 

3. 按照支持的操作分类,迭代器可分为五种:

<1> 输入迭代器:读,不能写,只支持自增运算;如istream_iterator

<2> 输出迭代器:写,不能读,只支持自增运算;如ostream_iterator

<3> 前向迭代器:读和写,只支持自增运算;

<4> 双向迭代器:读和写,支持自增和自减运算;map、set和list提供双向迭代器

<5>随机访问迭代器:读和写,支持完整的迭代器算术运算;streing、vector和deque提供随机访问迭代器

 

4. 关联容器的键是const对象,因此关联容器不能使用任何写序列元素的算法。

转载地址:http://wwbdi.baihongyu.com/

你可能感兴趣的文章
Q27:二叉搜索树与双向链表
查看>>
Best Time to Buy and Sell Stock
查看>>
Binary Tree Zigzag Level Order Traversal
查看>>
ZigZag Conversion
查看>>
[leetcode]:Two Sum
查看>>
leetcode: 3Sum
查看>>
leetcode:3sum closet
查看>>
【剑指offer】面试题37:两个链表的第一个公共结点
查看>>
【剑指offer】面试题39:二叉树的深度
查看>>
【剑指offer】面试题28的习题:正方体,八皇后
查看>>
【剑指offer】面试题42:单词翻转顺序&左右旋转字符串
查看>>
【剑指offer】面试题43:n个骰子的点数
查看>>
堆排序及其相关操作
查看>>
【剑指offer】 堆排序查找最小的K个数
查看>>
【剑指offer】q50:树中结点的最近祖先
查看>>
二叉树的非递归遍历
查看>>
【leetcode】Reorder List (python)
查看>>
【leetcode】Linked List Cycle (python)
查看>>
【leetcode】Linked List Cycle (python)
查看>>
【leetcode】Word Break(python)
查看>>