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

  • 向量 vecter
    • 1.添加头文件
    • 2.初始化
    • 3.常用函数

向量 vecter

1.添加头文件

#include

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<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]);	//自动扩充容量
}
  • 排序 sort函数
#include
 
//对a中的从a.begin()(包括它)到a.end()(不包括它)的元素进行从小到大排列
sort(a.begin(),a.end());
  • 倒置
 #include
 
 //把a中的从a.begin()(包括它)到a.end()(不包括它)的元素复制到b中,从b.begin()+1的位置(包括它)开始复制,覆盖掉原有元素
 reverse(a.begin(),a.end());
  • 查找
 #include
 
//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;

你可能感兴趣的:(C++,c++,算法)