// fo/sort1.cpp #include #include #include #include using namespace std; class Person { public: string firstname const; string lastname const; ... }; /* Класс функции-предиката * - оператор () сравнивает два объекта Person */ class PersonSortCriterion { public: bool operator() (const Person& p1, const Person& p2) const { /* Первый объект Person меньше второго, * - если фамилия в первом объекте меньше фамилии во втором объекте; * - или если фамилии равны, а имя в первом объекте меньше. */ return p1.lastname() PersonSet; // Создание коллекции PersonSet coll; ... // Выполнение операций с элементами PersonSet::iterator pos; for (pos = coll.begin(); pos != coll.end(); ++pos) { ... } ... }