QSet - это шаблонный класс из Qt Toolkit, который предоставляет набор на основе хеш-таблиц. QSet <t> является одним из универсальных контейнерных классов Qt. QSet неупорядочен, поэтому нельзя считать, что последовательность итератора предсказуема. Если требуется упорядочение по ключу, используйте QMap. QSet хранит значения в неопределенном порядке, поэтому поиск значений выполняется быстро. Внутренне, QSet <t> реализован как QHash. QSet поддерживает как итераторы в стиле Java, так и итераторы в стиле STL. </t></t>
2 ответа

Контейнер QT, с указанным заказом и без повторов

Мне нужно что-то похожее на QSet, но мне нужно сохранить элементы в том порядке, в котором я их вставил есть такая вещь?
08 янв '17 в 09:33
1 ответ

(Де) сериализация QSet с enum с использованием QDataStream

Я использую Qt 4.8.7. я имею enum Color {red, green, blue} а также QSet&lt;Color&gt;, Как я должен (де) сериализовать QSet&lt;Color&gt; с помощью QDataStream? Десериализация не выполняется с пользовательским типом. Должен ли я вручную создавать сери…
11 авг '17 в 09:14
1 ответ

Как использовать QSet в качестве значения в QMap?

Я использую Qt и хочу объявить следующий контейнер: QMap&lt;QUrl , QSet&lt;ClassSharedPtr&gt; &gt; map; Здесь ClassSharedPtr - это общий расширенный ptr класса "Class". typedef boost::shared_ptr&lt;const Class&gt; ClassPtr; Я получаю следующие ошибк…
20 окт '15 в 05:07
0 ответов

QMap insertMulti vs QMap<int, QSet <QString>>

Я смотрел на сохранение набора значений на карте, с int в качестве ключа: - QMap&lt;int, QSet&lt;QString&gt; &gt; setOfValues; Читая документацию, я заметил, что QMap предоставляет функцию insertMulti, позволяющую вставлять несколько значений для од…
11 апр '14 в 08:46
2 ответа

QSet: ошибка с qHash и пользовательским классом

Я хочу создать QSet&lt;Tag&gt; что я хочу использовать внутри моей программы. Tag мой пользовательский класс Когда я строю код, я получаю ошибки GCC, касающиеся qHash перегрузка: Exercise.cpp.o In file included from /opt/Qt/5.5/gcc_64/include/QtCore…
16 сен '15 в 19:33
2 ответа

Как изменить элементы QSet?

Я имею QSet&lt;QuadPattern&gt; texture; и я хотел бы изменить все QuadPattern в цикле. foreach это не хорошее решение, потому что оно делает копию. С этим кодом: QMutableSetIterator&lt;QuadPattern&gt; it(texture); while (it.hasNext()) { it.next(); i…
27 июн '14 в 09:07
1 ответ

QSet добавить настраиваемый объект

У меня следующий класс class Test{ int a; int b; }; и все, что я хочу, это иметь QSet&lt;Test&gt; куда я вставлю несколько тестовых объектов. int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QSet&lt;Test&gt; setTest; setTest.insert…
17 фев '21 в 16:38
0 ответов

Как получить случайное значение из QSet без предупреждения «Выделение ненужного временного контейнера»?

Этот код здесь: CardSet &amp;cs = p-&gt;game().cardSet(); QRandomGenerator rg; int index = rg.bounded( 0, cs.size() - 1 ); QString s = cs.values().at(index); // warning here Производит warning: allocating an unneeded temporary container [-Wclazy-con…
11 ноя '21 в 03:46
3 ответа

Неправильное поведение цикла в C ++ и Qt 6.2

Прежде всего, я полный новичок в C ++ и Qt, и я использую Qt 6.2 и C ++ 11. Это код, с которым у меня проблема: QSet&lt;QList&lt;QString&gt;&gt; listSet; for(int i = 0; i &lt; 10; i++) { QList&lt;QString&gt; myList; for(int r = 0; r &lt; 10; r++) { …
25 дек '21 в 06:06
1 ответ

Вставка в QSet против QHash

Я хотел бы знать, как именно работает вставка в QSet. Сравнивает ли QSet все элементы с новым элементом при вставке? Потому что, если это так, я бы использовал QHash с простым идентификатором в качестве ключа вместо использования QSet с классом конт…
16 май '23 в 13:21
0 ответов

Почему std::prev(), примененный к итератору QSet&lt;int*&gt;, дает мне ошибку сегмента?

У меня Debian 11 amd64, Qt 5.15.2, и я пытаюсь использоватьstd::prev(it.end())чтобы получить последний элемент вQSet, так: #include &lt;QSet&gt; int main() { return *(int*)(*(std::prev(QSet&lt;int*&gt;({new int(10)}).end()))); } Но когда я запускаю …
03 окт '23 в 21:05