【C++】vector的基本用法

vector是动态数组的同义词

一、vector对象带参数构造

1.vectora(a,a+5);//左闭右开

2.vectorb(n,z);n个z

3.vectorc(a);//拷贝

二、动态数组可以整体赋值

vectorvec;

vectorvec2;

vec.push_back(1);

vec2.push-back(2);

vec=vec2;

三、swap()与size()

vectorvec;

1.swap(x)//与容器x互换元素

动态数组清空所有数据且释放内存格式

vector().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
#include
#include
using namespace std;
int main()
{
	vectorvec;
	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;
}

你可能感兴趣的:(#,C++,c++,数据结构,青少年编程,学习方法)