Re[4]: std::list.sort()
От: Аноним  
Дата: 13.10.02 14:07
Оценка: 9 (1)
Здравствуйте Павел Кузнецов, Вы писали:

ПК>Здравствуйте peter@work, Вы писали:


ПК>>>
ПК>>>struct CStudentNameIsLess


peter>>вот тут поясни, plz.


ПК>В std::list есть две перегруженных функции sort. Одна имеет сигнатуру `void sort()' и при сортировке использует операцию `<' для определения порядка элементов. Если для твоего класса существует "естественный" порядок и определена операция `<', никаких танцев с бубном вообще не требуется: пиши себе slist.sort(), как и для встроенных типов.


ПК>Если же операция `<' не определена или требуется отсортировать элементы в порядке, отличном от того, который задается этой операцией, то можно воспользоваться второй функцией std::list<>::sort, которая задана шаблоном `template<class Predicate> void sort(Predicate)'.


В MSVC 6.0, к сожалению, можно только специализировать std::greater для своего класса. Предикат передать не получится (если, конечно, не править хедер руками).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.