c++迭代器介绍
来源:互联网 发布:买手机淘宝注册账号 编辑:程序博客网 时间:2024/06/05 12:40
迭代器的简介
(1):迭代器类似于指针类型,它也提供了对对象的间接访问。
(2):指针是c语言中就有的东西,迭代器是c++中才有的,指针用起来灵活高效,迭代器功能更丰富些。
(3):迭代器提供一个对容器对象或者string对象的访问的方法,并且定义了容器范围。
使用迭代器
迭代器和指针不一样,容器和string有迭代器类型同时拥有返回迭代器的成员。比如,容器都有的成员begin和end,其中begin成员复制返回指向第一个元素(第一个字符)的迭代器,而end成员返回指向容器(或string对象)尾元素的下一个位置的迭代器,也就是说end指示的是一个不存在的元素,所以叫end返回的是尾后迭代器。一般我们清楚一个迭代器的准确类型是什么,所以我们都是使用auto或者decltype来定义变量的。
- 1
- 2
- 3
标准容器迭代器的运算符
- 1
- 2
- 3
- 4
- 5
下面给出一个使用迭代器运算符修改容器元素的代码示例:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
输出结果:
迭代器的类型
那些拥有迭代器的标准库类型都是使用:iterator和const_iterator来表示迭代器的类型:
- 1
- 2
- 3
- 4
- 5
- 6
const_iterator和常量指针一样,只可以读取但不可以修改所指的值。在c++11的新标准中,为了便于得到const_iterator类型的返回值,引入两个新的函数,分别是cbegin和cend,功能类似于begin和end,只是返回的值类型为const_iterator;
vector动态增长的限制:
(1):不能再范围for循环中向vector对象添加元素。
(2):任何一种可能改变vector容量的操作,比如push_back,都会使该vector对象的迭代器失效。
迭代器的运算
- 1
- 2
- 3
- 4
- 5
- 6
两个迭代器返回的值,在string和vector都为它定义了一个新的类型–difference_type,它是一个带符号的整型。
使用迭代器运算的一个经典算法是二分查找,代码如下:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
输出结果:
- 【c/c++】autoconf介绍
- 初学c++,简单介绍一下迭代器
- c++primer学习笔记-----3.4迭代器介绍
- C++/CLI 简单介绍
- C语言库函数介绍
- Linux C 函数介绍
- C类型介绍
- C语言const介绍
- C语言const介绍
- C语言历史介绍
- [转贴]C语言介绍
- [转贴]C语言介绍
- 第一章 C语言介绍
- C/C++介绍
- C#-Handler 技术介绍
- Objective -C 的介绍
- Objective C简单介绍
- C语言基础介绍
- Python资源汇集网站推荐:awesome-python
- Linux内存中的 buffer 和 cache
- 运用java中的wait和notifyAll方法模拟玩家等待游戏进入场景
- JAVA代码优化方法
- Linux 性能监控
- c++迭代器介绍
- 凛冬已至,然而我的颈椎还没有准备好 | 钛空舱世界保健日
- cmake常用指令-1 find_package与CMake如何查找链接库详解
- Nand Flash学习笔记0-浮栅的介绍
- 文章标题
- 选择排序
- 算法分析与设计第六周
- python np.mean(axis) tf.squeeze(x)
- 周报1