QMap和std map的遍歷

2021-07-26 06:33:58 字數 928 閱讀 4421

兩種遍歷方式都使用迭代器:

1qmap使用iterator.key(),和iterator.value()方法獲取第乙個或第二個元素的值。

而std::map使用iterator->first(), iterator->second()來獲取第乙個或第二個元素的值。

qmapm_ratiocfg;    

qmap::iterator  it;

for(it = m.begin();it != m.end();++it)

#include

#include

#include

using namespace std;

int main()

return   0;

}注意刪除操作

qmap的刪除

qmap

::iterator

it;qmap

::iterator

ait;

for (it = mapinttoint.begin();it != mapinttoint.end(); )

intnum = it.key();

qdebug() << "thecurrent number is "

<< num;

if (num % 2 == 0)

mapinttoint.erase(it);

qdebug() << "erasenumber : "

<< num;

else

it++;

std::map的刪除

std::map::iterator it = maptest.begin();  

while(it != maptest.end())  

else

it++;  

}

遍歷QMap引發異常處理

用常規方法遍歷qmap,刪除滿足條件元素時出現 讀取位置0 x時發生訪問衝突 檢視 呼叫堆疊 指向qmap iterator operator 和qmapnode nextnode 定位為刪除iterator中元素引起iterator的遍歷異常,特記錄如下 qmap iterator iter 遍歷...

std map的安全遍歷並刪除元素的方法

首先我們講遍歷std map,大部分人都能寫出第一種遍歷的方法,但這種遍歷刪除的方式並不太安全。第一種 for迴圈變數 include include includeusing namespace std int main return 0 結果如下 key 0 value 555555555555...

qt之QHash和QMap的區別

qmap提供了乙個從類項為key的鍵到類項為t的值的對映,通常所儲存的資料型別是乙個鍵對應乙個值,並且按照key的次序儲存資料,這個類也支援一鍵多值,如 qmultimap qhash跟qmap基本上一致,但是它維護的是一張雜湊表,表的大小和資料項是自適應的,qhash是以任意的順序放置它的資料,這...