C++中vector的常用操作

vector的常用操作
定义和初始化
vector<T> v1;//空vector
vector<T> v2(v1);//v2包含v1所有元素的副本
vector<T> v2 = v1;//同上
vector<T> v3(n,val);//n个val
vector<T> v4(n);//n个重复地执行了值初始化的对象
vector<T> v5{a,b,c,...};//包含了初始值个数的元素,每个元素被赋予相应的初始值
vector<T> v6 = {a,b,c,...};//同上

vector<vector<int>> matrix(row,vector<int>(col,0));//定义并初始化二维向量
插入
vector<int> a{1,2,3};
a.push_back(4);//在末尾添加4
a.insert(a.begin()+1,5);//在a的第1个元素前插入数值5
a.insert(a.begin()+1,3,5);//在a的第1个元素前插入3个数,其值都为5
a.insert(a.begin()+1,b.begin(), b.end());//b为数组,在a的第1个元素前插入b的全部元素,可以用于合并两个向量
删除
b.pop_back();//删除末尾元素
b.erase(b.begin()); //将起始位置的元素删除
b.erase(b.begin(), b.begin()+3); //将(b.begin(), b.begin()+3)之间的元素删除
截取
vector<int> b(a.begin(), a.begin()+3);//将a中从a.begin()开始的3个元素赋值给b
vector<int> b; 
b.assign(a.begin(),a.begin()+3);//同上
交换
a.swap(b);//b为向量,将a中的元素和b中的元素进行整体性交换
头文件algorithm中的几个重要函数

排序sort

sort(num.begin(),num.end(),sortFun);//如果shinint型,第三个参数可以使用less< int>()从小到大排序或者greater< int>()从大到小排序,是自定义类型话或者复杂类型就需自己定义比较规则函数sortFun。

vector<int> num;
sort(num.begin(),num.end());//默认是升序

倒置reverse
头文件algorithm

reverse(a.begin(),a.end());//将a倒置

复制copy

copy(a.begin(),a.end(),b.begin()+1); //把a中的从a.begin()(包括它)到a.end()(不包括它)的元素复制到b中,从b.begin()+1的位置(包括它)开始复制,覆盖掉原有元素

查找find

find(a.begin(),a.end(),10); //在a中的从a.begin()(包括它)到a.end()(不包括它)的元素中查找10,若存在返回其在向量中的位置

返回类型是迭代器,如果没有找到,则返回a.end()

返回元素
a.back();//返回a的最后一个元素
a.front();//返回a的第一个元素
a.at(ind);//返回下标为ind的元素
Set

set跟vector差不多,它跟vector的唯一区别就是,set里面的元素是有序的且唯一的,只要你往set里添加元素,它就会自动排序,而且,如果你添加的元素set里面本来就存在,那么这次添加操作就不执行。要想用set先加个头文件set。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值