#include#includeusingnamespacestd;intmain{vectorivec={0,1,2,3,4,5};//使用迭代器输出vector中的所有元素for(autoiter=ivec.cbegin;iter!=ivec.cend;++iter){cout<<*iter<<'';//输出每个元素的值}cout< 1.3应用技巧 迭代器的应用技巧包括迭代器间的算术运算、逆向迭代器、插入迭代器、流迭代器等。
6. 迭代器 7. vector容器 vector初始化 8. 数组 9. 语句 悬垂(dangling)else: switch 控制流 10. 类型转换:隐式转换与显式转换 reinterpret_cast转换 C++ 是C语言的高级扩充,能够全面兼容C语言又会发展出各种高阶性能。 由于C语言太过于原生,很多工具需要自己造轮子,没有类似C++的STL库之类的高阶库,在使用...
迭代器可以把这两种标志控制的循环统一为一种控制方法:迭代器控制,每一次迭代操作中对迭代器的修改就等价于修改标志或计数器。 在STL中,容器的迭代器被作为容器元素对象或者I/O流中的对象的位置指示器,因此可以把它理解为面向对象的指针——一种泛型指针或通用指针,不依赖于元素的真实类型。 迭代器的概念如图所示:...
#include <iostream> class MyClass { public: int x; void printX() { std::cout << "x = " << x << std::endl; } void setX(int value) { x = value; } void printAddress() { std::cout << "this = " << this << std::endl; } }; int main() { MyClass obj1; obj1.x ...
如下程序是实现一个反转列表的生成器,倒序输出列表中的值。生成器是一个类。生成器相对于迭代器略微复杂,首先我们需要自定义一个类 RevgenState,与之前的C/C++实现扩展类原理相似,中间多了一个环节就是实现 next 的调用过程 revgen_next。首先程序需要判断游标是否已经遍历完所有的元素,如果遍历结束返回空 NULL...
经常使用C++、JAVA等面向对象语言开发的程序员都会比较喜欢容器的迭代器功能,用起来方便简洁。象一些常用的数据结构,如:哈希表、动态数组、链表等,在这些面向对象语言中都可以非常方便地使用迭代器。当然,在C语言中也有对这些常用数据结构的函数封装,但要对容器中元素的遍历,则一般会通过注册回调函数的方式。如下: ...
8.3.1 输入迭代器 285 8.3.2 输出迭代器 285 8.3.3 前向迭代器 286 8.3.4 双向迭代器 287 8.3.5 随机存取迭代器 287 8.3.6 迭代器的使用 287 8.4 算法 288 8.4.1 算法和函数对象 288 8.4.2 算法分类介绍 289 8.5 综合应用实例 293 习题8 296 第...
1、cin:cin是标准化输入,包含在头文件<iostream>中。2、scanf:scanf是格式化输入,包含在头文件<stdio.h>中。二、操作效率不同 1、cin:cin先把要输入的东西存入缓冲区,再输入,导致的输入操作效率稍低,但书写简便。2、scanf:scanf的是用指针把要输入的东西输入的,输入效率比较高,但是写代码...
12.4.3 迭代器 12.4.4 函数对象 12.5 异常处理 12.5.1 异常处理的基本思想 12.5.2 异常的抛掷、检测与捕获 处理 12.5.3 创建自己的异常类 12.5.4 指定函数抛掷的异常类型 12.5.5 异常处理的嵌套 12.5.6 抛掷异常时撤消对象 12.5.7 再次抛掷异常 12.5.8 构造函数中的异常处理 12.6 习题 ...