"operator()"在重载运算符方法中是什么意思,在priority_queue(STL)中用作C++中的比较器?

What "operator()" means in overloading operators method, used in priority_queue (STL) as comparator in C++?

本文关键字:STL 比较器 queue C++ 意思 运算符 重载 operator 方法 是什么 priority      更新时间:2023-10-16

我在一本关于重载运算符的 c++ 算法书中读到过,在这种情况下我很难理解重载运算符的工作原理。这是代码序列:

struct cmp {
bool operator () (const int &x, const int &y) const
{
return x % 17 < y % 17;
} 
}; 
int main() {
priority_queue<int, vector<int>, cmp> note;
note.push(80); note.push(97); note.push(100); note.push(30); 
while ( note.size() > 0 )
{
cout << note.top() << " ";
note.pop();
} 
return 0; 
}

我不明白的是这行代码:

bool operator () (const int &x, const int &y) const

请有人帮帮我!

我不

明白的是这行代码:

bool operator () (const int &x, const int &y) const

此行代码声明运算符 (( 的运算符重载。此重载有两个参数,这两个参数都是对 const int 的引用。它被声明为 const,因此可以通过 const lvalues 调用它。运算符返回布尔值。