c++ - 通过值而不是键访问 QMap 元素

标签 c++ qt qmap

我想通过它的值访问 QMap,但我不想遍历它并找到具有相同值的元素并使用它的键, 无论如何可以通过它的内容找到 QMap key ? 我的代码是:

    QMap<int, QVector<QString> >::iterator it;
QMap <QString, int> m_all_data;

我想使用我的 iterator 键的值访问 m_all_data 的元素;

最佳答案

您可以使用:

const Key QMap::key ( const T & value ) const 

它返回第一个值为 value 的键或

QList<Key> QMap::keys ( const T & value ) const

它返回一个列表,其中包含按升序排列的映射中的所有键。

但它很慢(线性时间),因为 QMap 的内部数据结构针对按键而不是按值快速查找进行了优化。

关于c++ - 通过值而不是键访问 QMap 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23359153/

相关文章:

c++ - 找不到 Qt 5.12 D3D 编译器模块

c++ - 如何为可检查的 QPushButton 后代更改背景颜色?

qt - 如何重命名QMap的Key?

c++ - 将 QMap 转换为 JSON

c++ - 如何在 C++ 的多重继承上下文中使用来自特定基类的运算符

c++ - QVideoWidget 对齐时不显示任何内容

c++ - 在非常量函数中使用 const_iterator

c++ - 是否有必要通过常量引用传递迭代器

c++ - 如何检索 QML 相机提要并发送到 C++ 后端

c++ - 如何将一个QMap放入另一个QMap