Я работаю в коде, который сортирует список с ключом для каждого элемента, и я использую функцию сортировки STL.Однако ключевая функция, которая мне нужна, должна быть нестатической функцией класса, и компилятор отказывается принимать эту функцию.Любые предложения приветствуются.
#include <bits/stdc++.h>
class Class {
public:
Class (int i): my_int(i) {}
int f (int x) { return x % my_int; }
bool key (int i1, int i2) { return f(i1) < f(i2); }
void sort_v () { std::sort(v.begin(), v.end(), this->key) }
private:
std::vector<int> v = {4,6,3,2};
int my_int;
};
int main() {
Class c(3);
c.sort_v();
return 0;
}
Примечание. Друга функция не может быть легко реализована, потому что аргументы key (int, int) передаются автоматически, а так как f не является статическим, у нас не будет никакого способапередать данные этого класса.