"No match for operator>" 在 C++ 中使用优先级队列时

"No match for operator>" when using priority queue in C++

#include<bits/stdc++.h>
using namespace std;

struct vert
{
    int n,m;
    vert(int Node1=0,int Node2=0)
    {
        n=Node1,m=Node2;
    }
    bool operator<(vert const &obj)
    {
            return m<obj.m;
    }
};

int main()
{
    priority_queue<vert> q;
    q.push(vert(1,2));
}

当我 运行 这段代码时,我得到以下错误,error: no match for 'operator<' (operand types are 'const vert' and 'const vert'),我什至声明了运算符 < 做了什么,但它仍然不起作用,怎么办我解决这个问题?

如错误信息所述,使用const

试试这个

bool operator<(vert const &obj) const