标准库函数begin和end
来源:互联网 发布:淘宝商标注册入口 编辑:程序博客网 时间:2024/05/22 03:51
在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版)》
阅读全文
0 0
- 标准库函数begin和end
- C++ 标准库函数的begin和end函数与标准库容器的begin和end成员
- C++11标准库中的begin()和end()函数
- perl BEGIN和END用法
- awk的BEGIN和END
- awk的BEGIN和END
- 非成员begin()和end()
- perl BEGIN 和END块
- 迭代器的begin,end和指针的begin,end
- 标准库begin和end;除法的舍入规则;sizeof用于类成员;
- BEGIN...END
- begin-end
- Begin ... End
- C++中map的begin和end
- vector迭代器的begin()和end()
- 对于begin和end的认识
- Perl BEGIN块和END块
- perl中的BEGIN和END语句块
- Error:svn: locked svn: is already locked.
- mysql存储过程实战基础入门
- nginx的配置文件详细介绍
- 指定Geany使用的Python版本
- git的简单使用
- 标准库函数begin和end
- 广东首家“人脸识别”图书馆开放 刷脸取代借书证
- ubuntu16.04配置dotnetcore遇到的一些问题
- 操作系统:内存管理(一)
- 登录验证并记录日志
- GoogleVR全景制作过程
- elasticsearch中的and和or
- 多条目
- 软件代码规范笔记_代码编写