【C++】vector的基本用法
vector是动态数组的同义词
一、vector对象带参数构造
1.vector<int>a(a,a+5);//左闭右开
2.vector<int>b(n,z);n个z
3.vector<int>c(a);//拷贝
二、动态数组可以整体赋值
vector<int>vec;
vector<int>vec2;
vec.push_back(1);
vec2.push-back(2);
vec=vec2;
三、swap()与size()
vector<int>vec;
1.swap(x)//与容器x互换元素
动态数组清空所有数据且释放内存格式
vector<int>().swap(vec);
2.访问动态数组的长度
vec.size();
注意:不要超过动态数组的范围vec.size()-1;
四、动态数组的排序要用迭代器
(vec.begin,vec.end)
1.如全排序
sort(vec.begin(),vec.end());
2.如排前3个数
sort(vec.begin(),vec.begin()+3);
例:学校的一年一度的合唱比赛又要开始了,同学们都积极踊跃的报名。同学一个个按顺序报名,并加入到队伍末尾。老师为了维持队伍美观,时不时要当前队伍中的某个区间的同学按照身高从小到大排序。问最后同学的身高排列。
提示:请用动态数组完成哦。
输入格式
第一行包含一个正整数q(1≤q≤103),代表q次操作,同学报名或老师排序;
接下来q行每行首先输入一个整数op.当op== 1时,表示同学报名,接下来输入1个整数h,表示当前报名的学生身高。当op = = 2时,表示老师要进行排序,接下来输入两个整数x、y,表示老师要对当前第x个同学到第y个同学进行排序。
输出格式
输出共一行, 最后同学的身高排列。同学的身高之间用一一个空格隔开。
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int main()
{vector<int>vec;int ch;cin >> ch;while (ch--){int op, a;cin >> op;if (op == 1){cin >> a;vec.push_back(a);}else{int b;cin >> a >> b;a--;b--;sort(vec.begin() + a, vec.begin() + b +1);//此函数为左闭右开区间}}for (int i = 0; i < vec.size(); i++){cout << vec[i] << " ";}system("pause");return 0;
}