你重载运算符之后,函数自己还在反复使用自己啊,不就爆空间了嘛
这两行
return a.length()>b.length();
return a>b;
by 1612855242ytq @ 2024-01-28 19:39:23
我一般不用这种方法,所以我也不确定呢
by 1612855242ytq @ 2024-01-28 19:41:12
@[1612855242ytq](/user/108428) 这个内部的运算符也会被重载么?
by xiuman @ 2024-01-28 20:23:10
@[xiuman](/user/1118703) 我也不太懂的,感觉也没别的地方会超空间了
by 1612855242ytq @ 2024-01-28 20:25:22
```
return a.length()>b.length();
return a>b;
```
没问题的```
#include<bits/stdc++.h>
using namespace std;
bool cmp(string x,string y){
if(x.size() != y.size()){
return x.size()>y.size();
}
return x>y;
}
int main(){
int n;
cin>>n;
string a[25],b[25];
for(int i=1;i<=n;i++){
cin>>a[i];
b[i]=a[i];
}
sort(a+1,a+n+1,cmp);
int max_i;
for(int i=1;i<=n;i++){
if(b[i]==a[1]){
max_i=i;
break;
}
}
cout<<max_i<<endl<<a[1];
return 0;
}
```
by yinzixia @ 2024-04-20 13:40:36
return后会直接结束的
by yinzixia @ 2024-04-20 13:42:12
```
#include<bits/stdc++.h>
using namespace std;
bool cmp(string x,string y){
if(x.size() != y.size()){
return x.size()>y.size();
}
return x>y;
}
int main(){
int n;
cin>>n;
string a[25],b[25];
for(int i=1;i<=n;i++){
cin>>a[i];
b[i]=a[i];
}
sort(a+1,a+n+1,cmp);
int max_i;
for(int i=1;i<=n;i++){
if(b[i]==a[1]){
max_i=i;
break;
}
}
cout<<max_i<<endl<<a[1];
return 0;
}
```
by yinzixia @ 2024-04-20 13:42:38
```
bool operator>(string a,string b){
if(a.length()!=b.length()){
return a.length()>b.length();
}
return a>b;
}
```
operator>应该是不合法的
by yinzixia @ 2024-04-20 13:44:43