【STL】C++ 不定长数组 vecter

向量 vecter

1.添加头文件

#include<vecter>

2.初始化

  • 无初值声明,默认输出元素值全为 0
vecter<int>a(10);
  • 给出每个元素的初值
每个元素初值为1
vector<int>a(10,1);		
  • 用向量b给向量a赋初值
vector<int>a(b);
  • 用向量b的前三个(0、1、2)元素给a赋值
vector<int>a(b.begin(),b.begin()+3);
  • 从数组b中获得初值
int b[7]={0};	//全初始化为0
vecter<int>a(b,b+7);

3.常用函数

#include<vecter>
vecter<int>a,b;
  • 返回赋值的元素,元素都未赋值则返回 0
//返回第一个元素
a.front();
 
//返回最后一个元素
 a.back();

//返回第i个元素(i存在)
a[i];
  • 批量赋值
//将b的0、1、2元素赋值给a
a.assign(b.begin(),b.begin()+3);
  • 插入元素,位置相对于已赋值的元素
 //在最后一个赋值向量后插入元素
 a.push_back(5);
 
 //在a的第一个元素(从第0个算起)位置插入 5
 a.insert(a.begin()+1,5);
 
 //在a的第一个元素位置,插入 3 个数,其值全为5 
 a.insert(a.begin()+1,3,5);
 
 //b为数组,在a的第一个元素(从第0个元素算起)的位置插入b的第三个元素到第5个元素(不包括b+6)
 a.insert(a.begin()+1,b+3,b+6);
  • 删除元素
// 删除最后元素
a.pop_back();
// 删除索引为3的元素
a.erase(b.begin() + 3);
  • 容量操作
 //返回a 可容纳的元素个数
 a.capacity();
 
 //将a的现有元素个数调整至10个,多则删,少则补,其值随机
 a.resize(10);
 
 //将a的现有元素个数调整至10个,多则删,少则补,其值为2
 a.resize(10,2);
 
 //将a的容量扩充至100,
 a.reserve(100);
  • 逐个赋值
int a[5]={1,2,3,4,5};
vector<int>b;	//容量为 0
  
for(int i=0;i<5;i++){
	b.push_back(a[i]);	//自动扩充容量
}
#include<algorithm>
 
//对a中的从a.begin()(包括它)到a.end()(不包括它)的元素进行从小到大排列
sort(a.begin(),a.end());
  • 倒置
 #include<algorithm>
 
 //把a中的从a.begin()(包括它)到a.end()(不包括它)的元素复制到b中,从b.begin()+1的位置(包括它)开始复制,覆盖掉原有元素
 reverse(a.begin(),a.end());
  • 查找
 #include<algorithm>
 
//vector find
   vector<int>::iterator it;
   it = find(b.begin(), b.end(),2);
   if (it != b.end()) {
       cout<< *it <<endl; // 元素值
       cout<< it-b.begin() <<endl; // 索引
   }

   // 字符串find
   string s = "123abc";
   cout<< s.find('23a') <<endl;
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值