C++ map 中的reverse_iterator

来源:互联网 发布:淘宝怎么提高买家信誉 编辑:程序博客网 时间:2024/06/05 23:58

做了一个闽南师范大学OJ上的题,不想写排序,用了一下reverse_iterator,反向遍历容器

7006:学生成绩排序


Problem Description

使用结构数组存储学生信息,信息包括了姓名name和成绩score,按学生成绩从高到低排序,并输出。

 Input

输入文件首先包含一个整数n(n<10),表示有n个学生,然后是n行学生记录,一行代表一个学生,每个学生的name的长度小于15,且score为int型。

 Output

输出按成绩排序后学生的相关记录,每个信息之间用两个空格分隔,一个学生信息输出一行,如下。

 Sample Input

6GongJing 80LiuNa 90ZhouLi 86ChenHai 95SunYan 76WangHong 98

 Sample Output

name:WangHong  score:98name:ChenHai  score:95name:LiuNa  score:90name:ZhouLi  score:86name:GongJing  score:80name:SunYan  score:76



#include<iostream>#include<cstdio>#include<cstring>#include<cstdlib>#include <iterator>#include <vector>#include<map>using namespace std;map<int,string>x;int main(){    int a,n;    string b;    scanf("%d",&n);    getchar();    for(;n--;){        cin>>b>>a;        x[a]=b;    }    map<int,string>::reverse_iterator s=x.rbegin();    map<int,string>::reverse_iterator d=x.rend();    for(;s!=d;s++){        cout<<"name:";        cout<<s->second<<"  score:"<<s->first<<"\n";    }    return 0;}


0 0
原创粉丝点击