#c #qt #hash
#c #qt #хэш
Вопрос:
У меня есть два QHash
es, и я хочу объединить их в один QHash
. Оба хэша имеют один и тот же тип (т. Е. Оба являются QHash<QString, qint32>
). Как мне сделать это эффективно (и / или по-Qt-подобному)?
Что-то вроде:
hash1 << hash2;
или
hash1.append( hash2 );
или что-то подобное, было бы здорово. Если это невозможно, я просто переберу меньший хэш и вставлю его в первый.
Комментарии:
1. что вы подразумеваете под «объединением»?
Ответ №1:
Я полагаю, вы ищете QHash::unite()
.
Как указано в связанной документации:
Вставляет все элементы из другого хэша в этот хэш. Если ключ является общим для обоих хэшей, результирующий хэш будет содержать ключ несколько раз.
Комментарии:
1. В настоящее время эта функция устарела.
Ответ №2:
unite
Функция устарела с Qt 5.15. Лучшим решением является QHash::insert
.
Комментарии:
1. Обратите внимание, что может быть уместно указать на разницу между обеими функциями.