QMap

最后更新于:2022-04-02 02:13:54

[TOC] ## 概述 1. 不能使用 map[key] 这种形式查找映射里是否包含键 key 的元素,因为 operator[](const Key & key) 函数在找不到 key 元素时,自动调用 value 类默认构造函数为映射添加 key-value 新元素 2. 一般不建议使用 QMap 的 insertMulti() 和 unite() 函数进行多重映射添加或映射合并,Qt 单独提供了 QMultiMap 表示多重映射,在程序中尽量让 QMap 保持一对一映射,避免代码的误解 常用函数 ``` // 构造函数 QMap nameAge; QMap() //默认构造函数 QMap(std::initializer_list > list) //初始化列表构造函数 QMap(const QMap & other) //复制构造函数 QMap(QMap && other) //移动构造函数 QMap(const std::map & other) //根据标准库的映射构造 QMap // 添加函数 iterator insert(const Key & key, const T & value) //直接插入一对 key - value iterator insert(const_iterator pos, const Key & key, const T & value)//在建议的迭代器 pos 位置插入一对 key - value T & QMap::​operator[](const Key & key) //[] 运算符重载 //移除和删除函数 T take(const Key & key) int remove(const Key & key) void clear() // 访问和查询函数 bool contains(const Key & key) const QList keys() const ``` ## 示例 示例1 ``` QMap nameAge{ {"Alice", 20}, {"Bob", 22}, {"Cell", 19} }; qDebug()< nameAgeOther = std::move( nameAge ); qDebug()< nameAge; nameAge.insert( "Alice", 20 ); nameAge["Bob"] = 22; nameAge["Cell"] = 19; ```
';