#include <iostream>
#include <algorithm>
#include <numeric>
#include <vector>
using namespace std;
class C
{
public:
vector<int> CSort();
bool Func(int x, int y);
private:
vector<int> data;
};
vector<int> C::CSort()
{
vector<int> result(data.size(), 0);
iota(result.begin(), result.end(), 0);
sort(result.begin(), result.end(), Func);
return result;
}
bool C::Func(int x, int y)
{
return (data[x] > data[y]);
}
В моем классе C
, как определено выше, я хотел бы получить вектор заказа data
с std::sort
помощью функции члена Func
. Результатом была ошибка:Каков правильный способ ссылки на функцию-член класса?
'C :: Func': нестандартный синтаксис; использование «&», чтобы создать указатель на член
Я считаю, что это что-то делать с Why doesn't reference-to-member exist in C++.
Однако, я не могу найти подходящий способ ссылки на эту функцию в std::sort
. Как я могу реализовать его правильно?
@ArchbishopOfBanterbury Вы были правы, и инициализирует вектор порядке убывания является хорошим напоминанием, спасибо большое;) –
В стороне note, 'std :: sort (result, & C :: Func);' должен работать готово с предстоящими диапазонами TS. – Morwenn