STL初步——二元组Pair

xiaoxiao2021-03-01  2

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

定义 和 赋值

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

 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; }

[运行结果]

转载请注明原文地址: https://www.6miu.com/read-3650306.html

最新回复(0)