При использовании приведенного ниже кода я получаю следующую ошибку:
именованные возвращаемые значения больше не поддерживаются return a.mark> b.mark;
Can Кто-нибудь, пожалуйста, помогите диагностировать эту ошибку?
#include<bits/stdc++.h>
using namespace std;
struct student
{
public:
string name;
int rank;
int mark;
student()
{
mark=0;
}
};
bool compare(student a,student b)
return a.mark>b.mark;
int main()
{
int n;
cin>>n;
string*input=new string[n];
student s[n];
for(int i=0;i<n;i++)
{
getline(cin,input[i]);
}
//string *name=new string[n];
//int *nums=new int[n];
// int *next_nums_pos=new int[n];
for(int i=0;i<n;i++)
{
int j=0;
int count=0;
int start=0;
//nums[i]=new int[100];
//next_nums_pos[i]=0;
//nums[i]=0;
int size=0;
while(input[i][j]!='\0')
{
if(count==0)
{
if(input[i][j]==' ')
{
s[i].name=input[i].substr(start,size);
//cout<<name[i]<<endl;
start=j+1;
count++;
size=0;
}
else
size++;
}
else
{
if(input[i][j]==' ')
{
int m;
stringstream mark(input[i].substr(start,size));
mark>>m;
s[i].mark+=m;
start=j+1;
size=0;
}
else
size++;
}
j++;
}
int m;
stringstream mark(input[i].substr(start,size));
mark>>m;
s[i].mark+=m;
}
sort(s,s+n,compare);
for(int i=0;i<n;i++)
{
cout<<i+1<<" "<<s[i].name;
}
//cout<<name[0]<<endl;
//for(int i=0;i<n;i++)
// cout<<name[i]<<endl;
return 0;
}