标准库函数begin和end
在C++05中对于string类和各种容器类(如vector等)添加了T.begin()和T.end()两个成员函数,分别返回指向首元素的迭代器和尾后元素的迭代器。但是对于复合类型数组却一直只能用指针和数组元素地址来实现。以遍历输出数组为例:
int a[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
int *b = &a[0], *e = &a[10];//数组a只有10个元素,下标范围是0~9,用&a[10]可以获取尾元素之后那个并不存在的元素的地址
for (b; b != e; ++b)
std::cout << *b << std::endl;
为了统一string类和容器类与数组的操作,C++11引入了库函数begin()和end(),在iterator头文件中定义。这两个库函数与容器中的两个同名成员函数功能类似,不过数组毕竟不是类类型,因此这两个库函数不是成员函数,正确的使用形式是将数组作为它们的参数:
int *first = std::begin(a), *last = std::end(a);
for (first; first != last; ++first)std::cout << *first << std::endl;
库函数begin()和end()的返回值分别是数组首元素的地址和尾后元素的地址。
本文内容摘自《C++ Primer(第5版)》
标准库函数begin和end相关推荐
- C++标准库函数begin和end函数
主要的目的 为了让指针更加简单.安全,引入了begin和end函数,这两个函数和容器中两个同名的成员函数类似.但是由于数组毕竟不是类类型,因此这两个函数不是成员函数. 正确的使用形式就是将数组作为他们 ...
- C++ Primer 5th笔记(chap 14 重载运算和类型转换)标准库函数对象
1. 定义 标准库定义的函数对象(Library-Defined Function Objects):标准库在头文件functional中定义了一组表示算术运算符.关系运算符和逻辑运算符的类,每个类分 ...
- 使用标准库函数对象的例子
14.42 使用标准库函数对象及适配器定义一条表达式,令其 1 统计打于1024的值有多少个. 2 找到第一个不等于pooh的字符串 3 将所有的值乘以2 14.43 使用标准库函数对象判断一个给定的 ...
- Keil MDK 中利用串口及c标准库函数printf为cortex-m3做调试输出(lpc1788)
摘要: c标准库的printf是输出给显示器的,将printf函数进行修改,使其输出重定向至串口,就能实现目的.printf函数调用fputc函数完成实质输出单一字符的工作,因此将fputc函数修改使 ...
- 标准库函数、系统调用的区别
标准库函数是对系统调用的封装,以方便移值. 人们在长期编程中发现使用系统调用有个重大的缺点,那就程序的移植性,比如说:linux 系统提供的系统调用的函数和 windows 就不一样,二者不单单是实现 ...
- c语言常用二个标准库函数
常用二个标准库函数 exit itoa exit 原型:extern void exit(int retval); 用法:#include <stdlib.h> 功能:结束程序 说明:返回 ...
- 2/2 常用函数:标准库函数
标准库函数:需要先导入模块再使用的函数 o. 查看库里面的所有函数: import 库名 dir(库名) o. 查看具体函数的功能: help(math.ceil) math库(模块): 数学运算的一 ...
- C语言模拟实现标准库函数之qsort() 2
C语言模拟实现标准库函数之qsort() <1> https://blog.csdn.net/csdn_kou/article/details/80158194 排序数字 int int_ ...
- C语言模拟实现标准库函数之strcpy()
strcpy(dest,src) strcpy是一种C语言的标准库函数,strcpy把从src地址开始且含有'\0'结束符的字符串复制到以dest开始的地址空间,返回值的类型为char*. char ...
最新文章
- 端到端TVM编译器(上)
- Python培训教程分享:Python模块如何导入__all__属性?
- ssl双向认证和单向认证的区别
- 数据库面试题【十五、优化查询过程中的数据访问】
- tornada-数据库
- TCP/IP 协议简单分析(建立连接握手过程)
- Confluence Cloud的Teams Message Extension
- mysql 7.x 集群_MySQL cluster 7.X集群部署配置
- 自然语言处理(NLP)书籍、项目、视频资源清单
- mysql全称量词_数据库整理(三) SQL基础
- C#工厂模式——简单工厂、工厂方法、反射+简单工厂、抽象工厂
- QT实现USB热插拔监控
- 全球诺贝尔奖得主最多的30所大学
- 学习LSL:Locate-Globally-Segment-locally
- monkey自动化测试脚本
- 奶粉中php是什么意思,那种奶粉dha含量高,奶粉中dha是什么意思
- LDAP服务器不支持chap认证,终端使用EIA进行PEAP-GTC认证失败的原因分析
- 【NLP】BiLSTM 命名实体识别 手写代码
- DBeaver(数据库管理软件) v22.0.1 使用安装教程
- 巨头进军社区团购后,团长却更焦虑了:被削权、难赚钱、没未来