Как получить ключ от значения в QMultiMap?

У меня QMultiMap выглядит следующим образом:

QMultiMap <int, QString> paramIDMap, paramValueMap;

Мое значение - "xyz", и я хочу взять его ключ.

Пример: paramIDMap.getkey("xyz") нравится

Как это сделать?

Ожидаемый результат должен возвращать ключ.

1 ответ

Решение

QMultiMap предназначен для хранения пар ключ-значение для быстрого поиска по ключу, где ключ может иметь несколько значений. Метод const QList QMap::keys(const T &value), унаследованный от QMap, вернет QList ключей для определенного значения. Это не будет быстрым поиском, и временная сложность будет линейной.

QMultiMap <int, QString> paramIDMap;
paramIDMap.insert(1,"a");
paramIDMap.insert(1,"b");
paramIDMap.insert(2,"a");
paramIDMap.insert(2,"b");
QList<int> ks = paramIDMap.keys("a");

Который ks будет содержать [1,2].

Другие вопросы по тегам