Qt:QMap
0、说明
QMap < Key , T >
一个QMap就是一个K-V对,也可以说是字典对象。
1)构造
构造一个Key是QString,Value是int的QMap:
QMap<QString, int> map;
如果已经知道需要初始化的K-V对,可以这样写:
QMap<QString,int> map = {{"Monday",1},{"Tuesday",2},{"Wednesday",3}};
即
QMap<QString,int> map = {{K1,V1},{K2,V2},...};
2)插入
①、map[key]=value;
②、map.insert( key , value );
3)提取
①、int num1 = map[ key ];
②、int num2 = map.value( key );
提取时,通常配合contains( key )判断Map中是否有指定Key的K-V对。
if (map.contains("13"))
num = map.value("13");
//或 num = map["13"];
推荐用②,因为用[ ]时,如果不存在对应K-V对,将会新创建一项。
4)迭代
QMap有Java样式和STL样式两种迭代器,Java样式的是QMapIterator、QMutableMapIterator;STL样式的是QMap::const_iterator、QMap::iterator
①Java样式
QMapIterator<QString, int> i(map);
while (i.hasNext()) {
i.next();
cout << i.key() << ": " << i.value() << Qt::endl;
}
②STL样式
QMap<QString, int>::const_iterator i = map.constBegin();
while (i != map.constEnd()) {
cout << i.key() << ": " << i.value() << Qt::endl;
++i;
}
1、模块和加载项
| Header: | #include <QMap> |
| qmake: | QT += core |
| Inherited By: |
2、构造
| QMap(std::map<Key, T> other) | 得到map的副本 |
| QMap(QMap<Key, T> other) | 得到map的副本 |
| QMap() | 构造一个空map |
3、实例方法
返回值类型 |
方法 |
说明 |
|
QMap<Key, T> & bool bool T & |
operator=(QMap<Key, T> other) operator!=(QMap<Key, T> other) operator==(QMap<Key, T> other) operator[](Key key) |
赋值 判断两个Map是否相等 通过Map[key]的方式访问Key对应的Value |
| QMap::iterator | begin() | 返回一个STL样式的迭代器,指向Map的第一项 |
| QMap::const_iterator | begin() | |
| QMap::const_iterator | cbegin() | 返回一个 const STL样式的迭代器,指向Map的第一项 |
| QMap::const_iterator | cend() | 返回一个 const STL样式的迭代器,指向Map的最后一项后的项 |
| void | clear() | 移除所有Item |
| QMap::const_iterator | constBegin() | 返回一个 const STL样式的迭代器,指向Map的第一项 |
| QMap::const_iterator | constEnd() | 返回一个 const STL样式的迭代器,指向Map的最后一项后的项 |
| QMap::const_iterator | constFind(Key key) | 返回一个 const STL样式的迭代器,指向K是key的项 |
| QMap::const_key_value_iterator | constKeyValueBegin() | 返回一个 const STL样式的迭代器,指向Map的第一个Entry |
| QMap::const_key_value_iterator | constKeyValueEnd() | 返回一个 const STL样式的迭代器,指向Map的最后一个Entry后的Entry |
| bool | contains(Key key) | Map中是否包含指定Key |
| int |
count(Key key) count() |
返回有多少个Key为key的Item。 返回整个Map的Item的数量。 |
| bool | empty() | 判断Map是否为空 |
| QMap::iterator | end() | 返回一个STL样式的迭代器,指向Map的最后一项后的项 |
| QMap::const_iterator | end() | 返回一个 const STL样式的迭代器,指向Map的最后一项后的项 |
| QMap::iterator | erase(QMap::iterator pos) | 移除迭代器pos指向的Item,返回指向下一项的迭代器 |
| QMap::iterator | find(Key key) | 返回一个迭代器,指向Key为key的Item |
| QMap::const_iterator | find(Key key) | |
| T & | first() | 第一个Value |
| Key & | firstKey() | 第一个Key |
| QMap::iterator |
insert(Key key, T value) |
向Map中插入一个新Item |
| void | insert(QMap<Key, T> map) | 把map中的所有Item都插入到Map中 |
| bool | isEmpty() | 是否为空 |
| Key | key(T value, Key defaultKey = Key()) | 返回给定的Value对应的第一个Key |
| QMap::key_iterator | keyBegin() | 返回一个 const STL样式迭代器指向第一个Key |
| QMap::key_iterator | keyEnd() | 返回一个 const STL样式迭代器指向最后一个Key之后的Key |
| QMap::key_value_iterator | keyValueBegin() | 返回一个 const STL样式迭代器指向第一个Entry |
| QMap::key_value_iterator | keyValueEnd() | 返回一个 const STL样式迭代器指向最后一个Entry之后的Entry |
| QList<Key> |
keys() keys(T value) |
所有Key构成的List |
| T & | last() | 最后一个Value |
| Key & | lastKey() | 最后一个Key |
| QMap::iterator | lowerBound(Key key) | 返回指向Item的Key为key的迭代器,如果没有这个Key,那么返回最接近但是比key大的Key对应的Item的迭代器 |
| QMap::const_iterator | lowerBound(Key key) | |
| int | remove(Key key) | 移除Map中所有Key为key的Item,返回移除了多少项 |
| int | size() | Map中有多少项 |
| void | swap(QMap<Key, T> &other) | 互换两个Map |
| T | take(Key key) | 移除指定Key,并返回它的Value |
| std::map<Key, T> | toStdMap() | 返回该QMap对应的STL Map |
| QMap::iterator | upperBound(Key key) | 返回指向Item的Key为key的迭代器,如果没有这个Key,那么返回最接近但是比key小的Key对应的Item的迭代器 |
| QMap::const_iterator | upperBound(Key key) | |
| T | value(Key key, T defaultValue = T()) | 提取指定Key的Value |
| QList<T> | values() | 所有Value构成的List |
Qt:QMap的更多相关文章
- Qt:foreach
0.说明 Qt提供一个关键字foreach(实际上是<QtGlobal>中定义的一个宏)用于方便地访问容器中的所有数据项. foreach关键字用于遍历容器中的所有数据项 注意 forea ...
- Qt:禁止qDebug的输出
Qt:禁止qDebug的输出 在工程的.pro文件里加上以下编译批令即可: DEFINES += QT_NO_DEBUG_OUTPUT
- Qt:使用自定义的字体
Qt:使用自定义的字体 1. 下载字体文件 2. 加载字体文件 3. 使用字体 QFontDatabase::addApplicationFont("XENOTRON.TTF" ...
- Qt:QJsonObject
0.说明 QJsonObject在逻辑上就是一个Map或Dict!记住这一点对理解它的方法.说明很有帮助. QJsonObject类封装了JSON Object. JSON Object是一个Key- ...
- Qt:QJsonValue
0.说明 QJsonValue类用于操作JSON中的各种数据. JSON是用于存储结构化数据的格式,JSON中的数据可以是六种类型: 基本类型 存储类型 bool QJsonValue::Bool d ...
- Qt:QJsonArray
0.说明 QJsonArray中存储了一系列的QJsonValue.可以向其中插入.删除QJsonValue. 一个QJsonArray可以与QVariantList互相转换.可以通过size()访问 ...
- Qt:QUrl构造时的qrc前缀
参考(按对我帮助从大到小排列): Qt内的各种路径(让人迷惑) - 鬼谷子com - 博客园 qt webengineview 加载本地资源方式 - beautifulday - 博客园 (17条消息 ...
- Qt:基于TCP和UDP的局域网P2P(局域网)通讯封装
封装了一个类,可以进行在局域网进行P2P通讯(仅局域网可用) 也就是说,假设局域网中有10台电脑,那么从本机发出的数据,将依次派发到这10台电脑(目前的设计中包括自己这台) 在使用方面,构造的时候给端 ...
- Qt:QVariant
0.说明 QVariant可以表现出Qt数据类型中最普遍的行为. 一个QVariant对象中一次只保留一个type()的单个值(有的type()可以是多值的,例如StringList),可以用conv ...
随机推荐
- iPhone12和iPhone12pro的区别有什么?
阅读全部 说法一 iPhone12和iPhone12pro的区别有:颜色.价格.运行内存.拍照.屏幕最高亮度.电池容量.材质.重量等,具体对比如下: 颜色:iPhone12五色可选,青春绚丽:iPho ...
- java 方法实例
// 方法 public class Demo { public static void main(String[] args) { m(); m2(2); m3('3', 4); m4(4, 6); ...
- 【Azure Developer】Azure Logic App 示例: 解析 Request Body 的 JSON 的表达式? triggerBody()?
问题描述 通过Azure Logic App(逻辑应用)实现无代码的处理JSON数据.但是如何获取Request Body中的一个属性值呢? 例如:如何来获取以下JSON结构中的 ObjectName ...
- ERNIE代码解析
原创作者 |疯狂的Max ERNIE代码解读 考虑到ERNIE使用BRET作为基础模型,为了让没有基础的NLPer也能够理解代码,笔者将先为大家简略的解读BERT模型的结构,完整代码可以参见[1]. ...
- java秒杀系列(1)- 秒杀方案总体思路
前言 首先,要明确一点,高并发场景下系统的瓶颈出现在哪里,其实主要就是数据库,那么就要想办法为数据库做层层防护,减轻数据库的压力. 一.简单图示 我用一个比较简单直观的图来表达大概的处理思路 二.生产 ...
- C3P0数据库连接池数据库插入中文乱码问题解决
问题描述 近期修改一个学生信息管理的JavaWeb项目,其数据库连接池使用了C3P0.在实际测试时,发现在学生信息模块添加中文学生信息会在数据库(MySQL)出现中文乱码问题. 如图所示: 问题分析 ...
- Ajax向服务器发起请求
Ajax向服务器发起请求的三个步骤: 1:创建Ajax 2:打开Ajax,打开Ajax请求 3:向服务器发起请求:需要知道地址和是get请求还是post方法 向服务器发起请求的两个方法:open 和 ...
- Redis的配置文件redis.conf详解
Redis的配置文件位于redis的安装目录下,一般不要直接操作出厂设置的配置文件,需要对其进行备份.# Redis的配置文件样例: # Redis configuration file exampl ...
- iOS中属性 (nonatomic, copy, strong, weak)的使用 By hL
以下内容来自Stackflow的详解 1.Nonatomicnonatomic is used for multi threading purposes. If we have set the non ...
- llinux_2
1.显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录 [root@lhq ~]#ls /etc/ | grep "^[^[:alpha:]][[:alp ...