qt之QHash和QMap的區別

2021-08-07 18:03:31 字數 1056 閱讀 6042

qmap提供了乙個從類項為key的鍵到類項為t的值的對映,通常所儲存的資料型別是乙個鍵對應乙個值,並且按照key的次序儲存資料,這個類也支援一鍵多值,如:qmultimap

qhash跟qmap基本上一致,但是它維護的是一張雜湊表,表的大小和資料項是自適應的,qhash是以任意的順序放置它的資料,這個類也支援一鍵多值,如:qmultihash

兩者之間的區別是:

1.qhash查詢速度上顯著於qmap;

2.qhash以任意的方式進行儲存,而qmap則是以key順序進行儲存;

3.qhash的鍵型別必須提供operator==()和乙個全域性的qhash(key)函式,而qmap的鍵型別key必須提供operator<()函式;

qmap

map;

map.insert("beijing","111");

map.insert("shanghai","021");

map.insert("tianjin","022");

map.insert("chongqing","023");

map.insert("jinan","0531");

map.insert("wuhan","027");

qmap

::const_iterator i;

for(i=

map.constbegin();i!=

map.constend;++i)

qmap

::iterator mi;

mi=map

.find("beijing");

if(mi!=

map.end())

mi.value()=

"010";

qmap

::const_iterator modi;

qdebug()<<

"";for(modi=

map.constbegin();modi=

map.constend();++modi)

qdebug()<" "

<

Qt QMap和QHash的區別

qmap提供了乙個從類項為key的鍵到類項為t的直的對映,通常所儲存的資料型別是乙個鍵對應乙個值,並且按照key的次序儲存資料。同時這個類也支援一鍵多值的情況,用類qmultimap可以實現。qhash具有和qmap幾乎完全一樣的api,此類維護這一張雜湊表,表的大小和資料項是自適應的,qhash是...

QMap和std map的遍歷

兩種遍歷方式都使用迭代器 1qmap使用iterator.key 和iterator.value 方法獲取第乙個或第二個元素的值。而std map使用iterator first iterator second 來獲取第乙個或第二個元素的值。qmapm ratiocfg qmap iterator ...

QT中的QList和QMap的一些簡單介紹

qt中提供了多個序列容器和關聯容器,但在實際開發專案中使用較多的則是qlist和qmap,接下來就來簡單的對這2個類進行一些熟悉,為以後的學習使用打下基礎。qlist是乙個陣列列表,它的優勢在於可以快速在頭部和尾部以及其他任意地方就進行資料的寫入刪除等操作。list的一些基本函式使用 qlistli...