for (vector<int>::size_type ix = 0; ix != v.size(); ix ++){ printf("%d\t", v[ix]); } printf("\n"); //利用迭代器 vector<int>::iterator it; for (it = v.begin(); it != v.end(); it ++){ printf("%d\t", *it); } printf("\n"); return 0; } 1. 2. 3. ...
顾名思义,迭代器是一种安全的访问控制器,它本身是一种指针,用于直接的元素访问。其遍历访问的大致思路是,创建容器的迭代器,让迭代器指向第一个元素,逐步向后移动并最终指向最后一个元素结束。 遍历代码举例: 1 2 3 4 5 vector<int> v;//创建一个向量vs vector<int>::iterator it;//C98标准 for(it=v....
vector的遍历 可以使用循环结构来遍历vector中的元素。 #include<stdio.h> #include<vector.h> intmain(){ vector<int>v={1,2,3,4,5}; // 使用for循环遍历元素 for(inti=0;i<v.size();i++){ printf("%d",v[i]); } // 使用迭代器遍历元素 for(autoit=v.begin();it!=v.end();++it){ ...
通常,在 C++11 之前,用于迭代容器元素的代码使用迭代器,例如: std::vector<int>::iterator it = vector.begin(); 这是因为它使代码更加灵活。 所有标准库容器都支持并提供迭代器。如果在以后的开发阶段您需要切换到另一个容器,则无需更改此代码。 注意: 编写适用于所有可能的标准库容器的代码并不像看起来那...
这是因为使用 erase 删除元素之后,迭代器 it 已经指向了被删除元素的下一个元素。所以当删除第一个 3 后,it 实际指向了下一个元素 3(或者说元素 3 向前移了一个单位),因此再经历 it++ 后,此时删除的其实是元素 4 ,而上一个元素 3 并没有被删除。此外,如果删除的是最后一个元素,it 便会指向 vec.end...
我们以STL中的vector容器为例 上面是使用迭代器进行遍历,这里的auto推导成了vector< int >的迭代器,和正常使用迭代器遍历没什么区别。 拓展:在推导出类型来的时候,我们想验证auto里面是不是我们想要的类型,在某种情况下会出现二义性,这时候想查看变量的类型时,可以使用typeid()函数,返回值是string类型。具体用法:...
!Vincent:迭代器是一种检查容器内元素并遍历元素的数据类型。C++更趋向于使用迭代器而不是下标操作,因为标准库为每一种标准容器(如vector)定义了一种迭代器类型,而只用少数容器(如vector)支持下标操作访问容器元素。 2.如何定义并初始化一个迭代器(iterator)?
给vector添加元素并遍历输出 打印输出的结果如下 运行结果 上面我们可以看到向vector里面添加函数,使用的是push_back方法, 那么vector具有哪些操作,让我们可以获取vector的一些性质呢, 在上面的代码基础上我们添加以下代码 结果如下 从上面我们可以发现, vector也可以通过[]下标索引器来访问其中的元素, 同std::string一...
const vector<int>::iterator中,const是修饰的迭代器,也就是是个常迭代器,一旦初始化比如=a.begin(),再不能更改它的值,比如赋值=a.end()是不行的,递增递减操作等都不允许。 虽然类似指针,但指针是内置类型,所以编译器可以通过const的位置来判断是常指针还是指向常量的指针,而迭代器只是一个对象,所以编译器不...
08_vector的迭代器遍历和迭代器的种类_传智扫地僧 - 大小:21m 目录:一天11 资源数量:540,其他_C,C++,03_C++进阶/一天11/01_stl总体课程安排,03_C++进阶/一天11/02_stl容器算法迭代器三大概念入门,03_C++进阶/一天11/03_stl理论知识_基本概念串讲,03_C++进阶/一天11/04_stl