Пожалуйста, посмотрите этот пример, опубликованный Йоханнесом Шаубом, чтобы отсортировать вектор пар:
Как мне отсортировать вектор пар на основе второго элемента пары?
std::sort(a.begin(), a.end(),
boost::bind(&std::pair::second, _1) <
boost::bind(&std::pair::second, _2));
Я думал, что понимаю boost :: bind, но у меня проблемы с этим.
Вопрос 1:
алгоритм сортировки ожидает предикатную функцию в качестве третьего параметра. Я вижу здесь логическое выражение. Что мне не хватает?:
boost::bind(&std::pair::second, _1) < boost::bind(&std::pair::second, _2)
Имеет ли оператор перегрузки библиотеки boost :: bind
Вопрос 2:
Это меня понимает confused:
boost::bind(&std::pair::second, _1)
Обычно в качестве первого параметра вызова связывания используется какой-то указатель на функцию, но здесь это адрес члена класса? Каков результат этой привязки?
Спасибо за ваше время и help