crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> QStringList сортировка, QStringList сортировка по длине строки
lioncub
  опции профиля:
сообщение 13.11.2009, 2:33
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 28
Регистрация: 10.11.2009
Пользователь №: 1220

Спасибо сказали: 3 раз(а)




Репутация:   0  


Как отсортировать QStringList по длине строки?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DIMEDROLL
  опции профиля:
сообщение 13.11.2009, 8:29
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 165
Регистрация: 28.9.2008
Из: Киев
Пользователь №: 304

Спасибо сказали: 23 раз(а)




Репутация:   0  


Цитата(lioncub @ 13.11.2009, 1:33) *
Как отсортировать QStringList по длине строки?

нужно испльзовать функцию Кьют:
void qSort ( RandomAccessIterator begin, RandomAccessIterator end, LessThan lessThan )

в качестве параметра LessThan lessThan передаешь указатель на функцию, корорая проверяет какой из двух элементов твоего списка меньше. Пример:
static bool MyLessThan(const QString &s1, const QString &s2)
{
  return (s1.size() < s2.size());
}

QStringList my_list;
// заполняешь
qSort (my_list.begin(), my_list.end(), MyLessThan);

код не компилил
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
lioncub
  опции профиля:
сообщение 13.11.2009, 9:45
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 28
Регистрация: 10.11.2009
Пользователь №: 1220

Спасибо сказали: 3 раз(а)




Репутация:   0  


спасибо, думал что-нибудь есть без добавления собственных, ан нет...
вот если кому надо будет, сортировка по длине строки и если длина одинаковая, то по алфавиту (без учета заглавной или строчной буквы):
static bool MyLessThan(const QString &s1, const QString &s2)
{
    if (s1.size() == s2.size())
        return (s1.toLower() < s2.toLower());
    else
        return (s1.size() < s2.size());
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 2.6.2020, 20:18