兩種遍歷方式都使用迭代器:
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是以任意的順序放置它的資料,這...