自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

區(qū)分 Qt QHash 和QMap

移動開發(fā)
QMap是一個很有用的數(shù)據(jù)結(jié)構(gòu)。它以“鍵-值”的形式保存數(shù)據(jù)。在使用的時候,通過提供字符標(biāo)示(鍵)即可得到想要的數(shù)據(jù)。關(guān)于QHash,那么看本文的介紹吧。

本文介紹的是Qt QHash QMap的區(qū)別,關(guān)于容器類可以查閱更多的資料,首先我們先把QHash QMap區(qū)分開來。內(nèi)容如下。

QMap提供了一個從類項為key的鍵到類項為T的直的映射,通常所存儲的數(shù)據(jù)類型是一個鍵對應(yīng)一個直,并且按照Key的次序存儲數(shù)據(jù),這個類也支持一鍵多值的情況,用類QMultiMap

QHash具有和QMap幾乎完全一樣的APi,此類維護這一張哈希表,表的大小和數(shù)據(jù)項是自適應(yīng)的,QHash是以任意的順序住址他的數(shù)據(jù),,當(dāng)然了他也是可以支持一鍵多值的,QMultiHash

兩種之間的區(qū)別是:

QHash查找速度上顯著于QMap

QHash以任意的方式進行存儲,而QMap則是以key順序進行存儲.

Qhash 的鍵類型必須提供operator==()和yige 全局的qHash(key)函數(shù)。而QMap的鍵類型key必須提供operator<()函數(shù).

他們同樣也是有兩種風(fēng)格的迭代容器。用來進行遍歷的。

STL 風(fēng)格的

QMap<key,T>  QMap<key,T>::const_iterator QMap<key,T>::iterator//同樣中間那個也是只讀的,最后那個是讀寫的。下面以一個例子來進行說明:

  1. #include <QDebug> 
  2. int main(int argc, char *argv[])  
  3. {  
  4.     QMap<QString, QString> map;  
  5.     map.insert("beijing", "111");  
  6.     map.insert("shanghai", "021");  
  7.     map.insert("tianjin", "022");  
  8.     map.insert("chongqing", "023");  
  9.     map.insert("jinan", "0531");  
  10.     map.insert("wuhan", "027");     
  11. QMap<QString, QString>::const_iterator i;  
  12.     for( i=map.constBegin(); i!=map.constEnd(); ++i)  
  13.         qDebug() << i.key() <<"        " << i.value();     
  14.        
  15.     QMap<QString, QString>::iterator mi;  
  16.     mi = map.find("beijing");  
  17.     if(mi != map.end())  
  18.         mi.value() = "010";  
  19.     QMap<QString, QString>::const_iterator modi;  
  20.     qDebug() << "";  
  21.     for( modi=map.constBegin(); modi!=map.constEnd(); ++modi)  
  22.         qDebug() << modi.key() <<"        " << modi.value();     
  23.     return 0;  

小結(jié):關(guān)于QtQHash QMap的區(qū)別,相信你看完之后,應(yīng)該很了然一新了。如果你需要對內(nèi)存分配做優(yōu)化,Qt的容器提供了三大內(nèi)存分配函數(shù),reserve(size),顯示預(yù)分配size的內(nèi)存; capacity(),返回已分配內(nèi)存;squeeze()釋放所有的未占用的內(nèi)存;當(dāng)你知道QHash的大小時,可以使用reserve函數(shù)預(yù)先分配內(nèi)存。

責(zé)任編輯:zhaolei 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-06-22 13:27:04

QT QMap

2021-12-29 18:32:51

IaaSPaaS云計算

2011-06-30 17:51:17

QT 元類型 線程

2024-12-16 17:00:00

并行并發(fā)Java

2024-09-03 15:14:42

2025-04-23 08:45:00

悲觀鎖樂觀鎖并發(fā)控制機制

2011-04-02 09:17:38

2011-03-03 15:32:51

Qt-Quick

2011-06-30 09:46:01

QT 顯示視頻 linux

2011-06-23 13:38:27

QT 元對象 信號

2015-04-17 11:25:59

云存儲云備份IaaS

2018-02-07 07:28:02

網(wǎng)線布線雙絞線

2020-06-16 15:40:32

閉鎖柵欄線程

2010-04-09 17:36:37

2023-01-13 11:27:13

戰(zhàn)略平臺Forrester

2022-02-18 00:15:58

Linux指令CPU

2011-06-23 13:25:42

QT 源碼 窗口

2011-06-09 11:11:35

QT 靜態(tài)庫 動態(tài)庫

2020-11-09 14:07:53

PyQtQt編程

2010-11-26 13:18:53

MySQL字符串
點贊
收藏

51CTO技術(shù)棧公眾號