crossplatform.ru

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


  Ответ в QMap + qsort
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
wiz29 Дата 25.11.2011, 12:42
 
Цитата(breeve @ 11.5.2011, 2:15) *
Не пойму в чем дело пытаюсь отсортировать QMap<QChar, int> по int.

Замените контейнер QMap<QChar, int> на QVector<QPair<QChar, int> > и сортируйте на здоровье.
ssoft Дата 25.11.2011, 8:39
 
Цитата(madzohan @ 25.11.2011, 0:26) *
Кто сказал что там нет вставки в N позицию? - Просто передвигаешь итератор к N, а дальше:
QMap Public Functions: iterator insert ( const Key & key, const T & value )


И нифига, будет вставка в контейнер и возврат итератора, куда была произведена вставка.

QMap - это отображение одного типа данных в другой, использующий упорядочивание элементов по ключу, его нельзя отсортировать по своему.

Если хочется применить упорядочивание, то необходимо преобразовать QMap< QChar, int > хотя бы в QList< QPair< QChar, int > >.
Написать функцию проверки на меньше для QPair< QChar, int > и использовать ее в void qSort ( RandomAccessIterator begin, RandomAccessIterator end, LessThan lessThan ).
madzohan Дата 24.11.2011, 23:26
  Кто сказал что там нет вставки в N позицию? - Просто передвигаешь итератор к N, а дальше:
QMap Public Functions: iterator insert ( const Key & key, const T & value )
Litkevich Yuriy Дата 13.5.2011, 8:42
 
Цитата(breeve @ 11.5.2011, 4:15) *
Как я понимаю qsort как раз то что надо.
нет
MoPDoBoPoT Дата 11.5.2011, 22:01
  А я не пойму зачем сортировать ассоциативный контейнер, да ещё по значению. У него смысл другой, нежели чем у списка. Там же нет метода для вставки элемента на конкретную позицию, а есть просто добавление в контейнер.
breeve Дата 11.5.2011, 1:15
  Не пойму в чем дело пытаюсь отсортировать QMap<QChar, int> по int.
Как я понимаю qsort как раз то что надо. Но столкнулся с множеством ошибок.
И причем все ошибки указывают на QAlgorithms.h
Code
QMap<QChar, int> map;
    for(int i = 0; i < text.size(); i++)
    {
        if(!text.at(i).isLetter())
            continue;
        QChar ch = text.at(i).toUpper();
        if(!map.contains(ch))
        {
            map.insert(ch, 1);
        }
        else
        {
            map[ch]++;
        }
    }
    qSort(map);
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 29.3.2024, 1:52