灵活运用——string比较大小

 

 

如果cmp用的是 return a>b,则特殊情况321 32会出现错误。 正确应为32321,但按照cmp会出现32132的错误。

但是用 return (a+b>b+a)就不会有这样的问题啦

 

 

复制代码
 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 
 4 struct node
 5 {
 6     string b;
 7 }a[30];
 8 
 9 bool cmp(const node &s1,const node &s2)
10 {
11     return (s1.b+s2.b>s2.b+s1.b); 
12 }
13 int main()
14 {
15     int n;
16     cin>>n;
17     for(int i=1;i<=n;i++)cin>>a[i].b;
18     
19     sort(a+1,a+1+n,cmp);
20 
21     for(int i=1;i<=n;i++)cout<<a[i].b;
22     
23     
25     return 0;
26 }
复制代码

 

posted @   wellerency  阅读(508)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示