Здравствуйте, мне нужно создать класс, который содержит поле priority_queue, функции-компараторы которого должны получить доступ к другому полю в классе. Короче мне нужно написать что-то вроде этого:Поле класса priority_queue с использованием компаратора, получающего доступ к другому полю класса
class A
{
B foo;
priority_queue<C,vector<C>,comparator> bar;
}
где определение компаратора является чем-то вроде
bool comparator(const C& c1, const C& c2)
{
//compute the boolean value using c1, c2 and the field foo
}
Можно ли получить этот результат в некотором роде, и где я должен определить функцию компаратора ?
Используйте захватную лямбду для компаратора. –
@RichardCritten уже пытался захватить лямбда ('[&]', если я прав), но это дает мне следующую ошибку: '' this 'не был захвачен для этой лямбда-функции'. Я также попытался определить автоматическое поле, хранящее лямбда-функцию, но получаю ту же ошибку. – AreTor