1. 程式人生 > >C++比較兩個map容器

C++比較兩個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;
}
這裡的程式碼還是相對簡單的,但是要注意效率,之前比較兩個map的時候直接使用雙重迴圈來做的,這樣最壞要做很多次比較才能得到結果,現在的程式碼多了幾個判斷,效率方面提高了不少,其他的容器比較都可參照這個樣例。