编译失败求助

P4779 【模板】单源最短路径(标准版)

Habxx @ 2024-11-15 10:57:35

Code :

#include <bits/stdc++.h>
using namespace std;
typedef struct node{
    long long pos;
    long long val;
    operator <(const node &x) const{
        return x.val<val;
    }
}t;
long long dis[100005];
long long vis[100005];
long long n,m,s;
vector<t> a[100005];
priority_queue<t> q;

int main(){
    cin>>n>>m>>s;
    memset(dis,0x7f,sizeof(dis));
    dis[s]=0;
    for(int i=1;i<=m;i++){
        int b,e,v;
        cin>>b>>e>>v;
        a[b].push_back({e,v}); 
    }
    q.push((t){s,0});
    while(!q.empty()){
        t tmp=q.top();
        q.pop();
        long long x=tmp.pos,d=tmp.val;
        if(vis[x]) continue;
        vis[x]=1;
        for (int i=0; i<a[x].size();i++){
            if (dis[a[x][i].pos]>a[x][i].val+dis[x]){
                dis[a[x][i].pos]=dis[x]+a[x][i].val;
                if (!vis[a[x][i].pos]){
                    q.push({a[x][i].pos,dis[a[x][i].pos]});
                }
            }
        }
    }
    for(int i=1;i<=n;i++){
        cout<<dis[i]<<" ";
    }
    return 0;
}

DEVC++过样例没问题,提交显示编译失败了


by qazsedcrfvgyhnujijn @ 2024-11-15 11:05:02

重载运算符没有声明返回值


by Habxx @ 2024-11-16 09:35:46

@qazsedcrfvgyhnujijn 已解决,非常感谢!第一次用重载运算符不是很熟练


|