一、基本操作
#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中是操作)