sort自定义排序问题
这题sort为什么会在运行时报错。请问哪里错的了 谢谢
是一道最短路径的题
#include"stdafx.h"
#include<iostream>
#include<algorithm>
using namespace std;
struct point
{
int a;
int b;
int sum;
};
int rpoint[105]={0};
bool comp(point a,point b)
{return a.sum<b.sum;}
int find(int u )
{
if(u=!rpoint[u])
{
rpoint[u]=find(rpoint[u]);
}
return rpoint[u];
}
int main()
{
int i=0;
for(;cin>>i;)
{
point d[5000]={0};
int y=i*(i-1)/2;
for(int u=0;y--;u++)
{
int a,b,c,e=0;
cin>>d[u].a>>d[u].b>>d[u].sum>>e;
if(e==0){d[u].sum=0;}
}
//以上完成了输入部分,之后是排序
sort(d,d+y,comp);
//之后要完成取最小值
for(int l=0;l<105;l++)
{
rpoint[l]=l;
}
int sumup=0;
for(int u;u<y;u++)
{
int n,m=0;
n=find(d[u].a);
m=find(d[u].b);
if(n=!m)
{
sumup+=sumup+d[u].sum;
rpoint[n]=m;
}
if (u==y-1) printf("%ld\n",m);
}
}
}
[解决办法]
for(;cin>>i;)
{
point d[5000]={0};
int y=i*(i-1)/2;
for(int u=0;y--;u++)
{
int a,b,c,e=0;
cin>>d[u].a>>d[u].b>>d[u].sum>>e;
if(e==0){d[u].sum=0;}
}
//以上完成了输入部分,之后是排序
sort(d,d+y,comp);//到这里时y为零,当然出错。