Por favor, echar un vistazo a este ejemplo publicado por Johannes Schaub para ordenar un vector de pares:Ayúdame a entender este uso de impulso :: unirse
How do I sort a vector of pairs based on the second element of the pair?
std::sort(a.begin(), a.end(),
boost::bind(&std::pair<int, int>::second, _1) <
boost::bind(&std::pair<int, int>::second, _2));
pensé que entiendo impulso: : ata, pero tengo problemas con este.
Pregunta 1:
algoritmo de la clase está a la espera de una función de predicado como un tercer parámetro. Lo que veo aquí, es una expresión booleana. ¿Qué me falta ?:
boost::bind(&std::pair<int, int>::second, _1) < boost::bind(&std::pair<int, int>::second, _2)
¿El impulso :: unen operador de sobrecarga biblioteca < para esos dos se une, y está volviendo una especie de puntero de función (como un lambda)?
Pregunta 2:
Esto me se confunde:
boost::bind(&std::pair<int, int>::second, _1)
lo general, hay una especie de puntero de función como el primer parámetro de una llamada bind, pero aquí se trata de una dirección de un miembro de la clase? ¿Cuál es el resultado de ese enlace particular?
Gracias por su tiempo & ayuda