bool cmp()函数种结构体做参数为什么能够省略struct
#include<iostream>#include<algorithm>
using namespace std;
const int M=1000005;
struct three
{
double w;
double v;
double p;
}s[M];
bool cmp(three a,three b) //这里我试验了下,写成bool cmp(struct three a,struct three b)也可以。为什么能够省略struct?我认为struct three这是不能分开的呀,就是表示一种类型。
{
return a.p>b.p;
}
int main()
{
int n;
double m;
cin>>n>>m;
for(int i=0;i<n;i++)
{
cin>>s[i].w>>s[i].v;
s[i].p=s[i].v/s[i].w;
}
sort(s,s+n,cmp);
double sum=0.0;
for(int i=0;i<n;i++)
{
if(m>s[i].w)
{
sum+=s[i].v;
m-=s[i].w;
}
else
{
sum+=m*s[i].p;
break;
}
}
cout<<sum<<endl;
return 0;
}