Как получить ключ от значения в 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].