"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
#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