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