Proszę spojrzeć na ten przykład wysłana przez Johannes Schaub posortować wektor par:Pomóż mi zrozumieć to wykorzystanie boost :: wiążą
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));
myślałem rozumiem impuls: : bind, ale mam problem z tym.
Pytanie 1:
algorytm sortowania spodziewa funkcję predykatu jako trzeci parametr. To, co tu widzę, jest wyrażeniem boolowskim. Co mi brakuje ?:
boost::bind(&std::pair<int, int>::second, _1) < boost::bind(&std::pair<int, int>::second, _2)
Czy wiążą biblioteki boost :: operator przeciążeniem < dla tych dwóch powiązań i wraca jakiegoś wskaźnika funkcji (jak lambda)?
Pytanie 2:
to dostaje mnie pomylić:
boost::bind(&std::pair<int, int>::second, _1)
Zazwyczaj istnieje jakiś wskaźnik funkcji jako pierwszy parametr wywołania wiązania, ale tutaj jest to adres członka klasy? Jaki jest wynik tego konkretnego powiązania?
Dzięki za poświęcony czas & pomocy