除了使用下标运算符来访问string对象的字符或vector等容器对象的元素外,还有另外一种更通用的机制也可以实现同样的目的,这就是迭代器。

所有的标准库容器都可以使用迭代器,但是只有少数几种才同时支持下标运算符。严格来说,string对象不属于容器类型,但是string支持很多与容器类型类似的操作。

类似指针类型,迭代器也提供了对对象的间接访问。就迭代器而言,其对象是容器中的元素或者string对象中的字符。使用迭代器可以访问某个元素,迭代器也能从一个元素移动到另外一个元素。

在C++05中对于string类和各种容器类(如vector等)添加了T.begin()和T.end()两个成员函数,分别返回指向首元素的迭代器和尾后元素的迭代器。但是对于复合类型数组却一直只能用指针和数组元素地址来实现。

 vector<int> test = {1,2,3,4,5,6};auto tbeg = test.begin(), tend = test.end();while (tbeg != tend){cout << *tbeg << ' ';++tbeg;}cout << endl;

为了统一string类和容器类与数组的操作,C++11引入了库函数begin()和end(),在iterator头文件中定义。这两个库函数与容器中的两个同名成员函数功能类似,不过数组毕竟不是类类型,因此这两个库函数不是成员函数,正确的使用形式是将数组作为它们的参数:

 int s[] = {1,2,3,4,5};auto *sbeg = begin(s);auto *send = end(s);while (sbeg != send) {cout << *sbeg << ' ';++sbeg;   }cout << endl;

标准库函数begin和end的使用相关推荐

  1. 标准库函数begin和end

    在C++05中对于string类和各种容器类(如vector等)添加了T.begin()和T.end()两个成员函数,分别返回指向首元素的迭代器和尾后元素的迭代器.但是对于复合类型数组却一直只能用指针 ...

  2. C++标准库函数begin和end函数

    主要的目的 为了让指针更加简单.安全,引入了begin和end函数,这两个函数和容器中两个同名的成员函数类似.但是由于数组毕竟不是类类型,因此这两个函数不是成员函数. 正确的使用形式就是将数组作为他们 ...

  3. C++ Primer 5th笔记(chap 14 重载运算和类型转换)标准库函数对象

    1. 定义 标准库定义的函数对象(Library-Defined Function Objects):标准库在头文件functional中定义了一组表示算术运算符.关系运算符和逻辑运算符的类,每个类分 ...

  4. 使用标准库函数对象的例子

    14.42 使用标准库函数对象及适配器定义一条表达式,令其 1 统计打于1024的值有多少个. 2 找到第一个不等于pooh的字符串 3 将所有的值乘以2 14.43 使用标准库函数对象判断一个给定的 ...

  5. Keil MDK 中利用串口及c标准库函数printf为cortex-m3做调试输出(lpc1788)

    摘要: c标准库的printf是输出给显示器的,将printf函数进行修改,使其输出重定向至串口,就能实现目的.printf函数调用fputc函数完成实质输出单一字符的工作,因此将fputc函数修改使 ...

  6. 标准库函数、系统调用的区别

    标准库函数是对系统调用的封装,以方便移值. 人们在长期编程中发现使用系统调用有个重大的缺点,那就程序的移植性,比如说:linux 系统提供的系统调用的函数和 windows 就不一样,二者不单单是实现 ...

  7. c语言常用二个标准库函数

    常用二个标准库函数 exit itoa exit 原型:extern void exit(int retval); 用法:#include <stdlib.h> 功能:结束程序 说明:返回 ...

  8. 2/2 常用函数:标准库函数

    标准库函数:需要先导入模块再使用的函数 o. 查看库里面的所有函数: import 库名 dir(库名) o. 查看具体函数的功能: help(math.ceil) math库(模块): 数学运算的一 ...

  9. C语言模拟实现标准库函数之qsort() 2

    C语言模拟实现标准库函数之qsort() <1> https://blog.csdn.net/csdn_kou/article/details/80158194 排序数字 int int_ ...

  10. C语言模拟实现标准库函数之strcpy()

    strcpy(dest,src) strcpy是一种C语言的标准库函数,strcpy把从src地址开始且含有'\0'结束符的字符串复制到以dest开始的地址空间,返回值的类型为char*. char ...

最新文章

  1. Visual Studio 2008 Express版本下载
  2. Find a way
  3. Win32ASM 变长参数的理解
  4. Vue-CLI 3.x 自动部署项目至服务器
  5. Few-shot learning和Meta-learning
  6. 离线下载谷歌浏览器chrome安装包
  7. 防火墙服务器-iptables
  8. 关于人性论视角下网络虚拟社会的伦理思考
  9. 使用conda安装pytorch时出现问题CondaSSLError: OpenSSL appears to be unavailable on this machine.
  10. 五笔难拆字拆分方法汇总及详解
  11. EXCEL实用技巧-多条件求和、多条件计数、多条件查找
  12. Google Adsense通过西联快汇收取收入的详细步骤
  13. 苹果cms重名视频怎么合并
  14. 单片机长时间程序跑飞_单片机程序跑飞的三种现象、原因及解决方法
  15. 利用google or-tools 求解逻辑难题:斑马问题
  16. python遗传算法(应用篇1)--求解一元函数极值
  17. ubuntu安装及使用教程
  18. 顺序功能图用计算机绘制,江苏大学2016年自动化PLC课程设计任务
  19. 磁盘阵列(Raid分类与条带化)
  20. 中英文词性标注对照表

热门文章

  1. Linux 知识地图
  2. Opengl 之 窗口初体验 ------ By YDD的铁皮锅
  3. 电子计算机扫描仪系统,人体三维扫描仪
  4. 计算机通信与网络技术考研录取,计算机科学与通信工程学院2021年硕士研究生招生一志愿复试名单公示...
  5. 华为HCIE认证考云计算、数通还是存储?
  6. 幼儿园数学目标_幼儿园数学活动目标的制定
  7. c语言用光标键控制图形,C语言图形设计参考资料.ppt
  8. python中文占几个字节_中文在python中占几个字节
  9. RGB转换成HSV(java实现)
  10. Vue中data数据变化 -- 页面重新渲染的问题