AcWing 862. 三元组排序
原题链接
简单
作者:
Hey_86
,
2024-03-13 17:40:53
,
所有人可见
,
阅读 10
C++ 代码(pair)
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
//自定义比较函数(默认第一项升序排列)
bool cmp(const pair<int,pair<double,string>> &a,const pair<int,pair<double,string>> &b){
return a.first==b.first? a.second.first<b.second.first : a.first<b.first;
}
int main(){
//建立可变长数组,内部通过pair类嵌套
vector<pair<int,pair<double,string>>> item;
int n,x; double y; string z; cin>>n;
while(n--){
cin>>x>>y>>z;
//后插元素
item.push_back({x,{y,z}});
}
//对元素进行自定义排序
sort(item.begin(),item.end(),cmp);
//遍历每一项元素输出
for(auto i : item){
cout<<i.first<<" ";
printf("%.2lf",i.second.first);
cout<<" "<<i.second.second<<endl;
}
}