其他分享
首页 > 其他分享> > Qt:QMap

Qt:QMap

作者:互联网

0、说明

QMap < Key , T >

一个QMap就是一个K-V对,也可以说是字典对象。

1)构造

构造一个Key是QString,Value是int的QMap:

QMap<QString, int> map;

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:

QMultiMap

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

标签:const,Qt,iterator,Key,key,迭代,QMap
来源: https://www.cnblogs.com/ShineLeBlog/p/14988375.html