Передача параметра в функцию сравнения?
При использовании алгоритма сортировки STL для вектора я хочу передать свою собственную функцию сравнения, которая также принимает параметр.
Например, в идеале я хочу сделать объявление локальной функции, например:
int main() {
vector<int> v(100);
// initialize v with some random values
int paramA = 4;
bool comp(int i, int j) {
// logic uses paramA in some way...
}
sort(v.begin(), v.end(), comp);
}
Однако компилятор жалуется на это. Когда я пытаюсь что-то вроде:
int main() {
vector<int> v(100);
// initialize v with some random values
int paramA = 4;
struct Local {
static bool Compare(int i, int j) {
// logic uses paramA in some way...
}
};
sort(v.begin(), v.end(), Local::Compare);
}
Компилятор все еще жалуется: «ошибка: использование параметра из содержащей функции»
Что я должен делать? Должен ли я сделать некоторые глобальные переменные с глобальной функцией сравнения ..?
Благодарю.