有关网站建设的书籍,网上接设计单在哪里接,做网站的如何开发业务,北京装饰公司招聘信息一:要求
输入乱序的 成绩单 包括 姓名和成绩#xff0c;成绩按照递增顺序 输出,如果遇见成绩相同的 按名字的字典序输出。 示例#xff1a;
输入
5
w 12
a 12
v 7
c 3
e 9输出:
c 3
v 7
e 9
a 12
w 12二:代码实现 #includebits/stdc.h
using namespace std;struc…一:要求
输入乱序的 成绩单 包括 姓名和成绩成绩按照递增顺序 输出,如果遇见成绩相同的 按名字的字典序输出。 示例
输入
5
w 12
a 12
v 7
c 3
e 9输出:
c 3
v 7
e 9
a 12
w 12二:代码实现 #includebits/stdc.h
using namespace std;struct Node {string name;int grate;
};bool cmp(Node node1,Node node2) {if(node1.grate node2.grate) return node1.name node2.name; return node1.grate node2.grate;
}int main() {Node* node new Node[100];int n;cin n;for (int i 0; i n; i) {cin node[i].name node[i].grate;}sort(node,noden,cmp);for (int i 0; i n; i) {cout node[i].name node[i].grate endl; }}三:知识扩展关于重排序
1:vector的sort方法也可以实现重新排序
(1):bool函数
bool cmp(int a,int b) {return a b;
}
(2):代码
#includebits/stdc.h
using namespace std;bool cmp(int a,int b) {return a b;
}int main() {int n;vectorint v;cin n;for (int i 0; i n; i) {int nums;cin nums;v.push_back(nums);}sort(v.begin(),v.end(),cmp);for(auto temp : v) {cout temp ;}
}2:map也可以实现重排序
(1):前言
这里map实现的是对key值得升序遍历那么我们利用迭代器得逆序遍历不就实现降序处理了吗
(2):核心代码
mapint,int::reverse_iterator mt;for (mt m.rbegin(); mt ! m.rend(); mt){//注意遍历的时候是rbegin(),r,end()
}/**思路:这里实现逆序主要是利用迭代器逆序遍历 */#includebits/stdc.h
using namespace std;int main() {mapint,int m;mapint,int::reverse_iterator mt; int a[5] {5,4,3,2,1};for(int i 0; i 5; i) {m[a[i]] i;}for (mt m.rbegin(); mt ! m.rend(); mt) {cout mt-first mt-second endl;}}