STL初步——二元组Pair

『写在前面的一些基础语法』

定义 和 赋值

  • pair<int,char> a;                1.make_pair(233,'o');    2.a.first=233;a.second='o';
  • pair<int,string> b;
  • pair<int,struct> c;
  • pair<int,pair<int,int>> d;

Pair整体给我的感觉就和结构体是一样一样的,没有什么过于明显的特性

『上题上题』

【买蛋糕】

今天是路路的生日,生日蛋糕自然是少不了。路路的朋友们一起去蛋糕店来买蛋糕,可是等一行人到了蛋糕店之后,发现那里是人山人海啊-_-。这下可把店家给急坏了,因为人数过多,需求过大,所以人们要等好长时间才能拿到自己的蛋糕。由于每位客人订的蛋糕都是不同风格的,所以制作时间也都不同。老板为了最大限度的使每位客人尽快拿到蛋糕,因此他需要安排一个制作顺序,使每位客人的平均等待时间最少。这使他发愁了,于是他请你来帮忙安排一个制作顺序,使得每位客人的平均等待时间最少。

【输入要求】

  输入有两行。第一行是一个整数n,表示有n种蛋糕等待制作(1≤n≤100)。

  第二行有n个数,第i个数表示第i种蛋糕的制作时间。

【输出要求】

  输出包括一行,有n个整数,整数间用空格隔开,

  行末没有空格,是蛋糕的制作顺序,

  每个数即是蛋糕的编号。

【输入样例】

 8

扫描二维码关注公众号,回复: 2375353 查看本文章

 4 5 3 3 1 4 6 7

【输出样例】

 5 3 4 1 6 2 7 8

『代码代码』

#include <bits/stdc++.h>
using namespace std;
pair<int,int> cake[101];
bool cmp(const pair<int,int>& a, const pair<int,int>& b)
{
    return a.second<b.second;
}
int main(){
	int n,t;
	cin>>n;//输入蛋糕总数
	for(int i=0;i<n;i++){
		cin>>t;
		cake[i] = make_pair(i+1,t);//把输入的时间赋值给pair
	}
	sort(cake,cake+n,cmp);
	for(int i=0;i<n;i++){
		cout<<cake[i].first<<" ";
	}
	return 0;
}

[运行结果]

猜你喜欢

转载自blog.csdn.net/sinat_40872274/article/details/81137252