CODE1:
if((iter = map.find(key)) != map.end()) {
return iter->second;
}
return 0;
码2:
if(map.count(key) > 0) {
return map.at(key);
}
return 0;
CODE2得多简单,但两者map.count()
和map.at()
成本O(logn)时间的时间。 std::map
是否提供了一项功能,可以将最后一个搜索项存储在缓存中,并且可以更快地搜索相同的项目,还是只是在整个地图中执行第二次搜索?
+1尽管将第一个示例中的条件分成两行将会更清楚地表明IMO。 – dyp 2013-05-04 10:56:08
@DyP:同意,我试图在我更新的答案中反映出这个问题 – 2013-05-04 11:00:11
@AndyProwl:建议的检索函数与std :: map :: at(自C++ 11以来)做同样的事情 – dalle 2013-05-04 11:07:48