Я перегрузил оператор(), чтобы выполнить сравнение для меня, и я хочу отправить его как компаратор в третий аргумент вызова функции сортировки 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;
}
};
спасибо.
Где я должен располагать компаратором? – simplename
'sort (nums.begin(), nums.end(), std :: ref (* this));' Вам может понадобиться оператор 'const', как в' bool operator() (int i, int j) const {...} ' –