S'il vous plaît jeter un oeil à cet exemple publié par Johannes Schaub pour trier un vecteur de paires:Aidez-moi à comprendre l'utilisation de boost :: bind
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));
Je pensais que je ne comprends boost: : bind, mais j'ai des problèmes avec celui-ci.
Question 1:
l'algorithme de tri attend une fonction sous-jacente en un troisième paramètre. Ce que je vois ici, c'est une expression booléenne. Qu'est-ce que je manque ?:
boost::bind(&std::pair<int, int>::second, _1) < boost::bind(&std::pair<int, int>::second, _2)
Est-ce que le coup de pouce :: bind opérateur de surcharge bibliothèque < pour ces deux se fixe, et retourne une sorte de pointeur de fonction (comme un lambda)?
Question 2:
Cela me devient confus:
boost::bind(&std::pair<int, int>::second, _1)
Habituellement, il y a une sorte de pointeur de fonction en tant que premier paramètre d'un appel de liaison, mais ici, il est une adresse d'un membre de la classe? Quel est le résultat de cette liaison particulière?
Merci pour votre temps & aide