类别sort使用排序
2015-07-18 15:09
169 查看
2129: 船上的第二次测试第三个问题
Time Limit: 5 Sec Memory Limit: 128 MBSubmit: 243 Solved: 74
[Submit][Status][Web
Board]
Description
给一个数组,数组每一个元素都是字符串。使用插入排序,将此数组元素排序,排序规则是以字符串的ASCII码值之和作大小比較。要求定义一个类(MyString),数组每一个元素都是MyString对象。重载关系运算符(<号 或>号)用于比較两个MyString的大小。Input
第一行表示有多少个測试样例 后面每一个測试样例都有两行,一行表示单词个数,还有一行仅仅含英文单词与空格Output
输出单词排序后的情况Sample Input
25
windy snowy sunny rainy foggy
6
cherry banana orange litchi pomelo durian
Sample Output
foggy rainy windy sunny snowybanana orange litchi durian pomelo cherry
#include<iostream> #include<cstring> #include<iomanip> #include<algorithm> using namespace std; #define pi 3.14159 class mystring { char a[50]; int sum; public: void setmystring(char *b) { sum=0; strcpy(a,b); for(int i=0;i<=strlen(a);i++) sum+=a[i]; } char *getname() { return a; } friend bool operator<(mystring a,mystring b) //类的sort排序,仅仅要重载运算符就可以,用友元函数或成员函数都可重载。仅仅只是不能将參数定义为引用 { return a.sum<b.sum; } }; int main() { int t; cin>>t; while(t--) { int n; cin>>n; char b[20][50]; mystring ss[20]; for(int i=0;i<n;i++) { cin>>b[i]; ss[i].setmystring(b[i]); } sort(ss,ss+n); for(int i=0;i<n;i++) { cout<<ss[i].getname()<<" "; } cout<<endl; } } /************************************************************** Problem: 2129 User: jk1_201330551105 Language: C++ Result: Accepted Time:0 ms Memory:1484 kb ****************************************************************/
相关文章推荐
- 11877 The Coco-Cola Store 解题心得
- vi中常用命令
- APP的栅格设计试验
- Linux Zram的概念
- Android人生的再一次转变
- 分布式消息队列中间件系列研究之阿堂教程(基础篇-Local模式)
- HDU 3191How Many Paths Are There(TOPE排序 求次短路及条数)
- 深度学习在图像识别中的应用--学习笔记4
- qsort的用法
- 拖动缓动效果 代码实现
- C++ ostream类包含的一个简单的用于控制格式的成员函数setf precision
- Linux Cgroups概念
- ViewGroup为什么不会调用onDraw
- 050.Hex2String 十六进制转字符串
- js和jquery实现回到顶层
- Linux索引节点(Inode:no space for device)用满导致的一次故障
- XenStore
- HDU4618 Palindrome Sub-Array
- JavaScript函数
- JavaScript面向对象与原型