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

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

我读过一本关于重载运算符的 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

请有人帮助我!

What I don't understand is this line of code:

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

这行代码声明了运算符 () 的运算符重载。这个重载有两个参数,都是对 const int 的引用。它被声明为 const,因此可以通过 const 左值调用它。运算符returns bool value.