QMap, но без сортировки по ключу

Мне нужна структура, подобная QMap, но без сортировки по ключам, поэтому, если я сначала вставлю туда элемент, я могу рассчитывать, что этот элемент будет раньше всех остальных. И вставьте пару до или после указанного элемента. Есть ли у Qt такое?

3

Решение

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

Это может помочь вам:

3

Другие решения

Я использую

QList<QPair<key,value>>

для достижения этой цели. Но поиск занимает больше времени, так как вам нужно будет перебрать QList и использовать QPair.first для поиска нужного элемента.

edit: если вам не нужно, чтобы он взаимодействовал с другими API, вы можете использовать QVector для замены QList, который быстрее согласно официальному Qt

0

По вопросам рекламы [email protected]