Как объединить несколько QHashes в один QHash

#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. Обратите внимание, что может быть уместно указать на разницу между обеими функциями.