Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/56: Рейтинг темы: голосов - 56, средняя оценка - 4.93
Pied Piper
 Аватар для ArmanPrestige
237 / 228 / 57
Регистрация: 15.01.2013
Сообщений: 855

Сортировка QMap по значению

28.10.2013, 16:37. Показов 11126. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Собственно вопрос в заголовке темы. Возможно ли это?
Решил попробовать qSort. Результат - множество ошибок.

C++ (Qt)
1
2
3
4
5
    QMap<QString, int> map;
    map["1"] = 10;
    map["2"] = 5;
    map["3"] = 9;
    qSort(map);
Миниатюры
Сортировка QMap по значению  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.10.2013, 16:37
Ответы с готовыми решениями:

Преобразование qmap<k,v> в qmap<v,k>
Здравствуйте! Подскажите пожалуйста ни как не могу разобраться как сделать такое преобразование. Зачем? у меня есть контейнер...

QMap в label
можете подсказать как записать информацию из QMap в Label? или если это не возможно то что можно использовать?

QMap и QVariant
Привет читающим, вопрос по кусочку кода: #include &lt;QtCore/QCoreApplication&gt; #include &lt;QMap&gt; #include &lt;QDebug&gt; int...

9
 Аватар для oxotnik
1665 / 1134 / 80
Регистрация: 21.08.2008
Сообщений: 4,734
Записей в блоге: 1
28.10.2013, 16:38
мапа не сортируется
1
Pied Piper
 Аватар для ArmanPrestige
237 / 228 / 57
Регистрация: 15.01.2013
Сообщений: 855
28.10.2013, 16:39  [ТС]
Какую альтернативу предложите?
0
 Аватар для oxotnik
1665 / 1134 / 80
Регистрация: 21.08.2008
Сообщений: 4,734
Записей в блоге: 1
28.10.2013, 16:40
задача не вполне ясна
0
Pied Piper
 Аватар для ArmanPrestige
237 / 228 / 57
Регистрация: 15.01.2013
Сообщений: 855
28.10.2013, 16:45  [ТС]
Ок, всю задачу не буду описывать, приведу аналог. Допустим есть текст. Мне в нем надо подсчитать сколько раз каждая буква была использована , а потом отсортировать по убыванию по значению (то есть на первом месте самая часто встречающаяся буква).
0
 Аватар для oxotnik
1665 / 1134 / 80
Регистрация: 21.08.2008
Сообщений: 4,734
Записей в блоге: 1
28.10.2013, 16:49
структура с пергруженным оператором < и == в векторе или set-е
в set-е даже сортировать не надо будет, но будет ограничение на уникальность элементов
1
Pied Piper
 Аватар для ArmanPrestige
237 / 228 / 57
Регистрация: 15.01.2013
Сообщений: 855
28.10.2013, 16:52  [ТС]
И как потом с этой структурой в векторе работать, не особо представляю. То есть, я имею в виду что в мэпе достаточно написать
C++ (Qt)
1
map[T]++;
0
 Аватар для oxotnik
1665 / 1134 / 80
Регистрация: 21.08.2008
Сообщений: 4,734
Записей в блоге: 1
28.10.2013, 16:54
Цитата Сообщение от ArmanPrestige Посмотреть сообщение
И как потом с этой структурой в векторе работать, не особо представляю
через find
по большому счету operator[] в мапе примерно через find и работает
1
127 / 131 / 11
Регистрация: 25.12.2011
Сообщений: 443
28.10.2013, 18:43
Цитата Сообщение от ArmanPrestige Посмотреть сообщение
Допустим есть текст. Мне в нем надо подсчитать сколько раз каждая буква была использована , а потом отсортировать по убыванию по значению (то есть на первом месте самая часто встречающаяся буква).
Например, вот так можно:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <QMap>
#include <QVector>
#include <QString>
#include <QDebug>
 
int main()
{
    typedef QMap<QChar, int> Map;
    typedef Map::const_iterator Iter;
 
    Map count;
    QString text = "abracadabra";
    for (auto c : text)
        count[c]++;
 
    QVector<Iter> byVal;
    Iter i = count.cbegin();
    while (i != count.cend())
        byVal.append(i++);
 
    qSort(byVal.begin(), byVal.end(), [] (Iter i0, Iter i1) {
        return i0.value() > i1.value();
    });
 
    for (auto i : byVal)
        qDebug() << i.key() << " : " << i.value();
}
'a' : 5
'r' : 2
'b' : 2
'd' : 1
'c' : 1
1
Pied Piper
 Аватар для ArmanPrestige
237 / 228 / 57
Регистрация: 15.01.2013
Сообщений: 855
04.11.2013, 19:00  [ТС]
Цитата Сообщение от kamre Посмотреть сообщение
Например, вот так можно:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <QMap>
#include <QVector>
#include <QString>
#include <QDebug>
 
int main()
{
    typedef QMap<QChar, int> Map;
    typedef Map::const_iterator Iter;
 
    Map count;
    QString text = "abracadabra";
    for (auto c : text)
        count[c]++;
 
    QVector<Iter> byVal;
    Iter i = count.cbegin();
    while (i != count.cend())
        byVal.append(i++);
 
    qSort(byVal.begin(), byVal.end(), [] (Iter i0, Iter i1) {
        return i0.value() > i1.value();
    });
 
    for (auto i : byVal)
        qDebug() << i.key() << " : " << i.value();
}
Спасибо за идею с вектором итераторов. Так и сделал, работает на ура.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.11.2013, 19:00
Помогаю со студенческими работами здесь

QMap обновление
Добрый день. Такой вопрос: мне нужно обновлять содержимое QMap при обновлении некой таблицы в базе данных. Чтобы каждый раз не...

QMap из файла
Здравсвуйте, сразу прошу прощения , с Qt начал работать относительно не давно и многое ещё не понятно, пишется словарь, состоящий из 2х...

Сигналы и QMap
Что-то я не могу понять, что не так в моем коде? #ifndef STATSVIEWERPRINTDIAG_H #define STATSVIEWERPRINTDIAG_H #include...

QMap с параметрами
Никак не могу понять принцип работы QMap с параметрами. Например: QMap&lt;QString, int&gt; example(int a, int b); Прошу написать...

Qmap and QPoint
Здравствуйте, у меня такая проблема, нужно использовать QPoint в Qmap QMap&lt;QPoint,QPoint&gt; myMap; bool operator...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru