(1)头文件#include <vector>(2)创建vector对象,vector<int> vec;(3)尾部插入数字:vec.push_back(a); (4)使用下标访问元素,cout<<vec[0]<<endl;记住下标是从0开始的。 (5)使用迭代器访问元素. vector<int>::iterator it; for(it=vec.begin();it!=vec.end();it++) cout<<*it<<endl; 1. 2. ...
for(int i=0;i<10;++i){a[i]=i;}//下标只能用来获取已经存在的元素 1 2 2.2 从向量中读取元素 1.通过下标方式获取 int a[6]={1,2,3,4,5,6}; vectorb(a,a+4); for(int i=0;i<=b.size()-1;++i){cout<<b[i]<<endl;} 1 2 3 2.通过迭代器方式读取 int a[6]={1,2,3,4,...
vector中的lower_bound() 其中如果不减去v.begin(),返回一个迭代器,然后如果its==v.end()那么就是没有符合的。获取第一个的下标就是its - v.begin(). #include<iostream>#include<vector>#include<queue>#include<algorithm>usingnamespacestd;intmain(){ vector<int>v; v.push_back(10); v.push_back(...
同时也是以值的形式返回元素,为了实现这一点,迭代器势必要获取Vec的分配空间的所有权。
迭代器考虑到了宿主的生命周期,宿主被析构时,迭代器不再有效。再理解Vector 部分API 我们在insert和erase的时候,发现其普遍的获取了迭代器, 好好的位置下标不用,竟然用迭代器。原因就是迭代器知道头和尾之后,内部会利用迭代器重载了操作符这种操作, 找到对应的应该插入或者删除的位置。这样至少在其思想上,...
(1)通过下标方式获取(元素必须存在!) inta[6]={1,2,3,4,5,6};vector<int>b(a,a+4);for(inti=0;i<=b.size()-1;++i){cout<<b[i]<<endl;} (2)通过迭代器方式读取 inta[6]={1,2,3,4,5,6};vector<int>b(a,a+4);for(vector<int>::iteratorit=b.begin();it!=b.end();it++)...
结论:下标访问效率更高。 迭代器访问: 用时:超过1600ms classSolution {public: vector<int> fairCandySwap(vector<int>& A, vector<int>&B) {intsumA=0;for(inti=0;i<A.size();i++) { sumA+=A[i]; }intsumB=0;for(inti=0;i<B.size();i++) ...
可以使用迭代器 *iter获取和设置vector数据,也可以使用下标text[i]来获取和设置vector数据。 (5)bitset的使用 bitset<32> bitvec2(0xffff); // bits 0 ... 15 are set to 1; 16 ...31 are 0 bitset一般使用在位运算的逻辑运算中,可作简单了解。