C++比較兩個map容器
阿新 • • 發佈:2019-01-11
這裡寫一個函式,主要是對兩個map進行比較,程式碼如下:
這裡的程式碼還是相對簡單的,但是要注意效率,之前比較兩個map的時候直接使用雙重迴圈來做的,這樣最壞要做很多次比較才能得到結果,現在的程式碼多了幾個判斷,效率方面提高了不少,其他的容器比較都可參照這個樣例。bool CStudioAutoPlay::CompareMap(std::map<QString,int> &mapSrc, std::map<QString,int> &mapDst) { if ( mapSrc.size() != mapDst.size() ) { return false; } std::map<QString,int>::iterator it = mapSrc.begin(); while( it != mapSrc.end()) { std::map<QString,int>::iterator itDst = mapDst.find(it->first); if (itDst != mapDst.end()) { if (itDst->second != it->second) { return false; } } else { return false; } it++; } return true; }