合影
合影 (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);elsev_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,排序方法);
发布者:admin,转转请注明出处:http://www.yc00.com/news/1689347670a233714.html
评论列表(0条)