Название: Как реализовать двухколонную сортировка QList<MyTable> Отправлено: DenisKh001 от Июль 11, 2011, 07:59 Есть класс-контейнер MyTable состоящий из двух столбцов first, second. Как сделать сортировку по двум столбцам?
class MyTable { MyTable(); QString first; QString second; }; QList<MyTable> list // определение ... // добавляем данные Sort(list.begin(),list.end()); // такое конечно не работает Наверное это общий вопрос программирования, где можно почитать о таких алгоритмах? Название: Re: Как реализовать двухколонную сортировка QList<MyTable> Отправлено: LisandreL от Июль 11, 2011, 08:18 Вариант 1:
Цитировать void qSort ( RandomAccessIterator begin, RandomAccessIterator end ) То есть вы можете для своего класса определить этот оператор.This function requires the item type (in the example above, int) to implement operator<(). Вариант 2: Цитировать void qSort ( RandomAccessIterator begin, RandomAccessIterator end, LessThan lessThan ) В этом варианте вы можете реализовать несколько функций сравнения. Удобно, если нужно несколько вариантов сортировки. Например, вначале по первому столбцу, затем по второму, вначале по второму, потом по первому, только по первому, только по второму…Uses the lessThan function instead of operator<() to compare the items. Название: Re: Как реализовать двухколонную сортировка QList<MyTable> Отправлено: lenny от Октябрь 08, 2011, 12:30 Наверное это общий вопрос программирования, где можно почитать о таких алгоритмах? В книгах по STL. Самая простая Л.Аммерааль - STL для программистов на C++. |