20 / 20 / 2
Регистрация: 28.11.2012
Сообщений: 366

Структура в качестве ключа QMap

02.02.2015, 17:37. Показов 7545. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вопрос такой, можно ли в качестве ключа в QMap поместить струткуру?
К примеру:
C++ (Qt)
1
2
3
4
5
6
7
struct Dual
{
    int a,b;
    Dual(int c, int d){ a = c; d = b;}
};
 
QMap<Dual, another_struct>anymap;
При компиляции выдается ошибка,
no match for 'operator<' in 'key1 < key2'
не задан 'operator <', хорошо, переопределяем 'operator <'...
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
struct Dual
{
    int a,b;
    Dual(int c, int d){ a = c; d = b;}
 
    bool operator <(const Dual & e)
    {
        if(a == e.a)
        {
            return b > e.b;
        }
        else
        {
            return a>e.a;
        }
    }
};
При компиляции эта конструкция мне выдает ошибку:
passing 'const Dual' as 'this' argument of 'bool Dual::operator<(const Dual&)' discards qualifiers
А тут я что зделал не так? В чем ошибка?

 Комментарий модератора 
Еще одна тема с названием на английском и не раскрывающем суть вопроса, получишь предупреждение
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.02.2015, 17:37
Ответы с готовыми решениями:

QMap поиск ключа по значению
Доброго времени суток! Конечно вопрос с извратим но все же. Есть значение QTcpSocket(0x7fa45668fb30) есть QMap &lt;int,...

Пройтись по каждому элементу ключа QMap
Привет. Как мне пройтись по каждому элементу каждого ключа в QMap, если мне нельзя сюда поставить итератор &quot;???&quot; for (QObject...

QMap - как задать собственный функтор проверки уникальности ключа ?
Привет. Хочу в QMap в качестве ключа засунуть структуру с множеством полей. Как задать QMap-у правила проверки уникальности? P.S.: В...

23
137 / 107 / 23
Регистрация: 06.10.2008
Сообщений: 451
18.11.2016, 13:30
Студворк — интернет-сервис помощи студентам
А если оставить структуру только в библиотеке?
0
20 / 20 / 2
Регистрация: 28.11.2012
Сообщений: 366
18.11.2016, 14:58  [ТС]
Цитата Сообщение от mevn Посмотреть сообщение
А если оставить структуру только в библиотеке?
Но в программе эта структура используется и работает уже годами...
В принципе можно.
Но! Вопрос чисто практический.
Как передать QMap с пользовательским типом данных(структурой) в качестве значения, через функцию?
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
18.11.2016, 16:27
Xantrax, делай как mevn говорит. Структура должна быть описана в mylibrary.h вместе с функциями.
0
 Аватар для Wyn
1073 / 654 / 230
Регистрация: 14.01.2016
Сообщений: 2,031
Записей в блоге: 9
20.11.2016, 22:55
Xantrax, если так сильно жмёт, то можно использовать reinterpret_cast или проксю. Но это быдлокод. По хорошему надо как сказали выше, использовать объявление библиотеки.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.11.2016, 22:55

Структура в качестве ключа для map
Доброго времени суток. Имеется простая структура struct coordinateSet { public: coordinateSet(char *X,int *Y) {

Создать программу, в которой словарь будет принимать в качестве ключа значения счётчика, а в качестве значения, то,
Создать программу, в которой словарь будет принимать в качестве ключа значения счётчика, а в качестве значения, то, что введет...

MAP в качестве ключа
Есть map&lt;string, map&lt;Language, string&gt; lang; map&lt;string, map&lt;Language, string&gt; &gt;::iterator itr = langHashtable.find(keyLabe); Нахожу...

Map. 0 в качестве ключа [0]
Если создать словарь map и в качестве ключа использовать целые числа. Почему нельзя использовать ключ 0 ? Когда пытаешься вывести, выдает...

В качестве ключа массива переменная
Есть массив $Tasks=array('Николай'=&gt;array('work1'=&gt;'Настройка роутера','data1'=&gt;'26.01.2019','time1'=&gt;'8:00', ...


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

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Опции темы

Новые блоги и статьи
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru