Помогите мне понять это использование boost :: bind

Пожалуйста, посмотрите этот пример, опубликованный Йоханнесом Шаубом, чтобы отсортировать вектор пар:

Как мне отсортировать вектор пар на основе второго элемента пары?

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

15
задан Community 23 May 2017 в 12:34
поделиться