一、vector的定义
定义一个vector的方法如下:
vector<数据类型> 数组名
例如:
vector<int> vec;
vector<node> s;//node为已经定义过的结构体
但是如果数据类型也是一个STL容器,那么在定义两个“>"时就要加一个空格,以免编译错误
例如:
vector<vector<int> > vec;//正确操作
二维数组的定义:
vector<vector<int> > vec[1005];//定义一个一维长度固定为1005的二维数组
vector<vector<int> >vec;//定义一个两个维度都可变的二维数组
二、vector的常用函数
1、v.begin()
取v的首元素地址
2、v.end()
取v的尾元素地址的下一个地址
3、v.push_back()
push_back(i)用来在vector后面插入一个元素,时间复杂度为O(1)
4、v.size()
获得vector中元素的个数,时间复杂程度为O(1)
5、v.pop_back()
删除vector的尾元素,时间复杂度为O(1)
6、v.clear()
清空vector中的所有元素,时间复杂度为O(N)
7、insert()
insert(it,i)向迭代器it插入一个i元素,时间复杂度为O(n)
8、erase()
(1)erase(it)删除迭代器it处的元素
(2)erase(first,last)删除区间内的所有元素
三、vector的应用举例
数组中插入一个数
题目描述
给定有序数组(从小到大),再给你一个数,要求插入该数到数组中并保持顺序
输入
多组测试,每组第一行输入一个整数n,然后是n个有序的整数 第二行输入1个整数m和1个整数K
输出
将整数m插入到原数组中保持顺序是升序,然后输出2行 第一行是插入以后的数组 第二行是插入以后的数组中下标值是K的数 n m k不超过20
样例输入
3 1 2 5 3 1
样例输出
1 2 3 5 2
代码:
#include<bits/stdc++.h>
using namespace std;
vector<int> v;
int n;
int main()
{
while(cin>>n)
{
for(int i=0;i<n;i++)
{
int x;
cin>>x;
v.push_back(x);//插入元素
}
int m,k;
cin>>m>>k;
v.push_back(m);
sort(v.begin(),v.end());//排序
for(int i=0;i<n+1;i++)cout<<v[i]<<" ";
cout<<endl;
for(int i=0;i<n+1;i++)
if(i==k)
{
cout<<v[i]<<endl;
break;
}
v.clear();//注意清空
}
}