资讯动态

===C++vector(向量||动态数组)的常用用法

发布时间:2026/8/19 14:47:16 来源:尧图企业网站定制
文章目录Cvector的常用用法1.定义2.初始化3.遍历4.常用函数5.排序6.去重有序才能用一般是升序7.其他Cvector的常用用法一般不用vector删除元素1.定义T:类型char int 等一维数组vector T v;二维数组vector a[size];2.初始化(1).使用花括号直接赋值vectorint v{1,2,3,4,5}; //直接使用花括号赋值for(auto i : v) cout i ; //输出1 2 3 4 5(2).使用圆括号赋值vectorint v(5); //初始化5个值为0的元素for(auto i : v) cout i ; //输出0 0 0 0 0vectorint v(5, 4); //初始化5个值为4的元素for(auto i : v) cout i ; //输出4 4 4 4 4v[ ] 空的数组v(n,x)[ x,x,x,x…x] 长度为n 数值为 x的数组3.遍历1.直接访问定义为vector v的vector容器可以使用v[0],v[1],…这种方式来访问v.size( ) -存储的 unsigned int 类型 在遍历的时候 不能以v.size( )-1为边界auto类型 访问1拷贝型 ( 数据不可修改)for( auto i : v){cout i ;}2引用型数据可以修改for( auto i : v){cout i ;3.迭代器访问#includebits/stdc.husing namespace std;int main(){vectorint v;v.push_back(1); //依次输入1、 2、 3v.push_back(2);v.push_back(3);for(vectorint::iterator it v.begin(); it ! v.end(); it){cout *it ;}return 0;}4.常用函数1.push_back(y);- 等价于 emplace_back(y);- v 后面加个y , v.size( );不用单独写 系统自动加12.pop_back():pop_back()可以删除vector的尾元素不建议使用容易错3.size():用来获取vector中元素的个数4.clear():用来清空vector中的所有元素5.insert()#includebits/stdc.husing namespace std;int main(){vectorint v;for(int i 1; i 5; i){v.push_back(i); //将1、2、3、4、5 依次插入v的队尾}v.insert(v.begin() 2, -1); //将-1插入v[2]的位置for(vectorint::iterator it v.begin(); it ! v.end(); it){cout *it ;}return 0;}输出1 2 -1 3 4 55.排序//vector 排序sort(v.begin(),v.end());6.去重有序才能用一般是升序unique(v.begin(),v.end());返回去重后第一个重复元素无效的迭代器iterator并不会直接删除去重后的数字 会使用他的迭代器返回这时候就需要一个erase()\#includebits/stdc.h\#define endl \n\#define ll long long\#define ull unsigned long long\#define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);using namespace std;ll n,x;ll t;void output(vectorllv){​for(auto i : v)​couti ;​cout\n;}int main(){IOSvector llv;cinn;for(ll i1;in;i){​cinx;​v.push_back(x);}去重关键步骤sort(v.begin(),v.end());v.erase(unique(v.begin(),v.end()),v.end());output(v);return 0;}7.其他1v [ i ] v . at ( i ) 等价于其中v [ i ]出错时不会报错 而 v . at( i )会v.front( )v[ 0 ] ;v.back( ) v.[ v.size( )- 1]使用的前提是保证 v.size( )0vectorintg[ ];存图2###迭代器coutlower_bound(v.begin(),v.end(),x)-v.begin()endl;返回第一个x的那个元素的迭代器 再减去一个v.begin( ) 来获取下标

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价