由end 操作返回的迭代器指向 vector 的“末端元素的下一个”。表明它指向了一个不存在的元素。如果 vector 为空。begin 返回的迭代器与 end 返回的迭代器同样。由 end 操作返回的迭代器并不指向 vector 中不论什么实际的元素,相反,它仅仅是起一个哨兵(sentinel)的作用。表示我们已处理完 vector 中全部元素。 ...
#include<iostream>#include<vector>usingnamespacestd;intmain(){vector<int>a{1,2,3,4,5};cout<<"原先数组a的各个数据:1, 2, 3, 4, 5"<<endl;intb=a.front();intc=a.back();cout<<"数组a第一个数据:"<<b<<endl;cout<<"数组a最后一个数据:"<<c<<endl;a.pop_back();c=a.back();c...
获取元素数量:可以获取vector中元素的数量。 动态调整大小:可以根据需要动态增加或减少vector的大小。 容量管理:可以查询和修改vector的容量,即vector可以容纳多少个元素。 迭代器:可以使用迭代器遍历vector中的元素。 排序:可以对vector中的元素进行排序。 查找:可以根据元素值或条件查找vector中的元素。 清空:可以清空vec...
vector的空间动态增加大小,并不是在原空间之后的相邻地址增加新空间,因为vector的空间是线性连续分配的,不能保证原空间之后有可供配置的空间。因此,对vector的任何操作,一旦引起空间的重新配置,指向原vector的所有迭代器就会失效。 vector的size(),capacity(),reserve(),resize()函数: vector对象的内存布局如下图所示...
3.2 vector的迭代器底层实现 知识点 a. 显式构造关键字 `explicit` 模板函数的使用模板类 1. 函数模板 1.1. 基本范例 #include <iostream> #include <vector> using namespace std; ...
迭代器就像STL容器的指针,可以用星号*操作符解除引用. 一个保存int的vector的迭代器声明方法为:vector<int>::iterator it,这里其实可以使用auto it. vector的迭代器是"随机访问迭代器",可以把vector的迭代器与一个整数相加减,其行为和指针移动类似.it+2,*(it+2) ...
顾名思义,迭代器是一种安全的访问控制器,它本身是一种指针,用于直接的元素访问。其遍历访问的大致思路是,创建容器的迭代器,让迭代器指向第一个元素,逐步向后移动并最终指向最后一个元素结束。 遍历代码举例: 1 2 3 4 5 vector<int> v;//创建一个向量vs ...
vector<int> myVec;/添加10个元素for(int j =0 ; j<10 ; j+)myVec.push_back(j);/ 定义一个迭代器std:vector<int>:iterator p;/ 指向容器的首个元素p = myVec.begin();/ 移动到下一个元素p +;/ 修改该元素赋值*p = 20 ; /< 则myVec容器中的第二个值被修改为了20/ 循环扫描迭代器,改变...
1.1 vector(数组)封装动态数组的顺序容器。 at():所需元素值的引用。 front():访问第一个元素(返回引用)。 back():访问最后一个元素(返回引用)。 beign():返回指向容器第一个元素的迭代器。 end():返回指向容器末尾段的迭代器。 empty():检查容器是否为空。 size():返回容器中的元素数。 capa...
利用迭代器 如下: 代码语言:javascript 复制 #include<stdio.h>#include<vector>using namespace std;intmain(){vector<int>v;for(int i=0;i<10;i++){v.push_back(i);}//利用下标for(vector<int>::size_type ix=0;ix!=v.size();ix++){printf("%d\t",v[ix]);}printf("\n");//利用迭代器...