QMap类、 QHash类
-
QMap与QHash差别:
①QHash比QMap查找速度更快。
②QHash以任意顺序存储,QMap以Key顺序存储数据。
③QHash的Key必须提供operator==()及一个全局的qHash(Key)函数,而QMap的Key必须提供operator<()函数。
存储一键多值数据时可使用QMultiMap<Key,T>容器或QMultiHash<Key,T>容器。 -
Java风格迭代器
-
STL风格迭代器
//定义一个Map容器<key, value>
QMap<QString, QString> infoMap;
//添加元素
infoMap.insert("张三", "23岁");
infoMap.insert("李四", "24岁");
infoMap["王五"] = "25岁";
infoMap["赵六"] = "26岁";
//通过key查找value
qDebug() << "张三: " <<infoMap["张三"];
qDebug() << "李四: " <<infoMap.value("李四");
//通过value查找key
qDebug() << "23岁的: " << infoMap.key("23岁");
//java风格只读迭代器
QMapIterator<QString, QString> it_map_r(infoMap);
for(it_map_r.toFront(); it_map_r.hasNext();){
it_map_r.next();
qDebug() << it_map_r.key() << ": " << it_map_r.value();
}
//java风格读写迭代器
QMutableMapIterator<QString, QString> it_map_rw(infoMap);
//修改value
if(it_map_rw.findNext("23岁")