map 类型, 一个数据很大,一个小数据。。判断是否有重复的元素
2个map<std::string, bool> 类型, 一个数据很大,一个小数据。。判断是否有重复的元素
哪个效率高呢? g_onePlatform 里面有很多元素 。。比如100w以上 , mapOneRecords小数据
第一种:
for (map<std::string, bool>::const_iterator itb = g_onePlatform.begin(); itb != g_onePlatform.end(); itb++)
{
map<std::string, bool>::iterator itFind = mapOneRecords.find(itb->first);
if (itFind != mapOneRecords.end())
{
isFlag = true;
break;
}
}
第二种:
for (map<std::string, bool>::const_iterator itb = mapOneRecords.begin(); itb != mapOneRecords.end(); itb++)
{
map<std::string, bool>::iterator itFind = g_onePlatform.find(itb->first);
if (itFind != g_onePlatform.end())
{
isFlag = true;
break;
}
}
或者中间的find换成直接取下标g_onePlatform[itb->first] 是否为true , 效率哪种高呢 ?