备战蓝桥杯——STL之vector的常见用法

一、基本操作

#include<vector>

****创建向量组vector 对象
vector<int> v; 

****尾部插入int数
v.push_back(a); 

****使用下标访问元素,下标是从0开始的。同数组一样
cout<<v[0]<<endl;

****使用迭代器访问元素       另 若容器遍历结构体变量*it要加个括号 (*it).name
for(vector<int>::iterator it=v.begin(); it!=v.end(); it++){
       cout<<*it;
}

****插入元素
v.insert(v.begin()+i , a)   在第i个元素后面插入 数字a

v.insert(v.begin()+1, 3, 5); //在v的第1个元素(从第0个算起)的位置插入3个数,其值都为5

****删除元素
v.erase(v.begin()+2 )  删除第3个元素
v.erase(v.begin()+i, v.end()+j )   删除区间[i, j-1]

****容器中元素个数
v.size();

****清空
v.clear(); 

二、vector的初始化

vector<int> a; 只是定义了一个vector对象a

***
vector<int> a(10);//定义了10个整型元素的向量
(尖括号中为元素类型名,它可以是任何合法的数据类型),但没有给出初值,其值是不确定的。

***
vector<int> a(10,1); //定义了10个整型元素的向量,且给出每个元素的初值为1

***
vector<int> a(b); //用b向量来创建a向量,整体复制性赋值

***
vector<int> a(b.begin(),b.begin+3); //定义了a值为b中第0个到第2个(共3个)元素

***
int b[7]={1,2,3,4,5,9,8};
vector<int> a(b,b+7); //从数组中获得初值

三、常用算法

对a中的从a.begin()(包括它)到a.end()(不包括它)的元素进行从小到大排列
sort(a.begin(), a.end()); 

对a中的从a.begin()(包括它)到a.end()(不包括它)的元素倒置,但不排列,
如a中元素为1,3,2,4,倒置后为4,2,3,1

reverse(a.begin(), a.end());

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

copy(a.begin(), a.end(), b.begin()+1 );        

在a中的从a.begin()(包括它)到a.end()(不包括它)的元素中查找10,若存在返回其在向量中的位置
🔺find(a.begin(), a.end(), 10);     (这里find是算法,而set、string中是操作)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值