【发布时间】:2017-01-09 04:04:53
【问题描述】:
我已经重载了 () 运算符来为我进行比较,我想将它作为比较器发送到 std 排序函数调用的第三个参数。现在,这个调用在另一个名为threeSum 的成员函数中。我发现发送Solution() 有效,但this() 无效。这有什么语法规则?
class Solution
{
public:
bool operator() (int i, int j)
{
return (i < j);
}
vector<vector<int> > threeSum(vector<int> & nums)
{
sort(nums.begin(), nums.end(), this());
vector<vector<int> > ret_vec;
...
return ret_vec;
}
};
谢谢。
【问题讨论】:
-
比较器应该放在哪里?
-
sort(nums.begin(), nums.end(), std::ref(*this));您可能需要将运算符设为const,如bool operator() (int i, int j) const {...}
标签: c++ operator-overloading functor