合影

合影 (Standard IO)

时间限制: 1000 ms 空间限制: 262144 KB 具体限制

题目:小云和朋友们去爬香山,为美丽的景色所陶醉,想合影留念。如果他们站成一排,男生全部在左(从拍照者的角度),并按照从矮到高的顺序从左到右排,女生全部在右,并按照从高到矮的顺序从左到右排,请问他们合影的效果是什么样的(所有人的身高都不同)?

输入

第一行是人数n(2 <= n <= 40,且至少有1个男生和1个女生)。
后面紧跟n行,每行输入一个人的性别(男male或女female)和身高(浮点数,单位米),两个数据之间以空格分隔。

输出

n个浮点数,模拟站好队后,拍照者眼中从左到右每个人的身高。每个浮点数需保留到小数点后2位,相邻两个数之间用单个空格隔开。

样例输入

6
male 1.72
male 1.78
female 1.61
male 1.65
female 1.70
female 1.56

样例输出

1.65 1.72 1.78 1.70 1.61 1.56

#include <iostream>  
#include <algorithm>    // sort()函数所需的头文件 
#include <vector>       // STL顺序容器(Vector容器)所需头文件 
#include <iomanip>      // 保留小数位所需头文件 

using namespace std;

int main()
{
	int n;
	cin >> n;
	
	string sex;     // 性别 
	double height;  // 身高 
	
	vector<double> v_male;
	vector<double> v_female;
	
	for (int i = 1; i <= n; i++)
	{
		cin >> sex >> height;
		if (sex == "male")
			v_male.push_back(height);
		else
			v_female.push_back(height);
	}
	
	// 排序 
	sort(v_male.begin(), v_male.end());    
	sort(v_female.begin(), v_female.end());
	
	// male从小到大输出 
	for (int i = 0; i < v_male.size(); i++)
		cout << fixed << setprecision(2) << v_male[i] << " ";     // 保留小数点后2位 
	
	// female从大到小输出 
	for (int i = v_female.size() - 1; i >= 0; i--)
		cout << fixed << setprecision(2) << v_female[i] << " ";   // 保留小数点后2位 
		
	return 0;
}

小结:

vector容器:

1、 动态伸缩(可变大小的数组)。支持快速随机访问。尾部插入删除元素快,其余位置插入删除元素慢。
2、头文件:#include <vector>
3、定义:vector<int> v;
4、成员函数:❗(重点掌握)
v.push_back():在尾部插入元素
v.pop_back():删除末尾元素
v.front():返回第一个元素
v.back():返回最后一个元素,不检查这个元素是否存在
v.begin():返回指向第一个元素的迭代器
v.end():返回指向(尾后元素)最后一个元素之后的迭代器
v.rbegin():返回逆向队列的第一个元素,即v容器的最后一个元素
v.rend():返回逆向队列的最后一个元素的下一个位置,即v容器的第一个元素再往前的一个位置。
v.size():返回容器中实际元素的个数。
v.empty():判断容器是否为空。
v.clear():移除容器中的所有元素
v.erase(pos):删除pos位置的元素,传回下一个元素的位置
v.insert() :插入元素
v.max_size():返回容器能容量的最大数量。
v1.swap(v2):将v1和v2交换。
详细可点击查阅 STL之顺序容器

sort()函数:

1.头文件:

#include <algorithm> 

2.sort()函数三个参数解释:

第一个参数:排序的起始点
第二个参数:排序的终止点
第三个参数:排序函数

3.sort()函数模板:sort(start,end,排序方法);

原创文章 83 获赞 60 访问量 4万+

猜你喜欢

转载自blog.csdn.net/weixin_43821410/article/details/100121048