赞
踩
定义一个vector的方法如下:
vector<数据类型> 数组名
例如:
- vector<int> vec;
- vector<node> s;//node为已经定义过的结构体
但是如果数据类型也是一个STL容器,那么在定义两个“>"时就要加一个空格,以免编译错误
例如:
vector<vector<int> > vec;//正确操作
二维数组的定义:
- vector<vector<int> > vec[1005];//定义一个一维长度固定为1005的二维数组
- vector<vector<int> >vec;//定义一个两个维度都可变的二维数组
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)删除区间内的所有元素
题目描述
给定有序数组(从小到大),再给你一个数,要求插入该数到数组中并保持顺序
输入
多组测试,每组第一行输入一个整数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();//注意清空
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。