题解 | #成绩排序#

成绩排序

https://www.nowcoder.com/practice/8e400fd9905747e4acc2aeed7240978b

greater<int>好久不用了,记录一下

#include <iostream>
#include<bits/stdc++.h>
using namespace std;

int main() {
    int n, flag;
    while (cin >> n >> flag) {
        multimap<int, string> map1; // 使用 std::map<int,string> 作为底层容器
        string str;
        int number;
        while (n--) {
            cin >> str >> number;
            map1.insert({number, str});
        }

        if (flag == 1) {
            for (auto& ch : map1) {
                cout << ch.second << " " << ch.first << endl;
            }
        } else if (flag == 0) {
            // for(auto i = map1.size()-1;i>=0;i--){
            //     cout<<map1[i].second<<" "<<map1[i].first<<endl;
            //
            //std::map 是一个关联容器,其内部的元素是按键(key)进行排序的,默认情况下按升序排列。因此,使用 for(auto i = map1.size()-1;i>=0;i--) 进行遍历是错误的,因为 std::map 不支持使用下标访问元素。
            multimap<int,string,greater<int>>map2(map1.begin(),map1.end());
            for (auto& ch : map2) {
                cout << ch.second << " " << ch.first << endl;
            }
        }
    }
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

不愿透露姓名的神秘牛友
11-24 20:55
阿里国际 Java工程师 2.7k*16.0
程序员猪皮:没有超过3k的,不太好选。春招再看看
点赞 评论 收藏
分享
11-22 16:49
已编辑
北京邮电大学 Java
美团 质效,测开 n*15.5
点赞 评论 收藏
分享
巧克力1:双选会不如教室宣讲会
点赞 评论 收藏
分享
ArisRobert:统一解释一下,第4点的意思是,公司按需通知员工,没被通知到的员工是没法去上班的,所以只要没被通知到,就自动离职。就是一种比较抽象的裁员。
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务