binary predicates in stl:
Binary predicates typically compare a specific property of two arguments. For example, to sort elements according to your own criterion you could provide it as a simple predicate function. This might be necessary because the elements do not provide operator < or because you wish to use a different criterion.
The following example sorts elements of a set by the first name and last name of a person: