std :: map find / end都提供了const_iterator和iterator,例如
iterator end ();
const_iterator end () const
出于好奇,如果我有一个std :: map,它将在这里被调用/比较,是迭代器还是const_iterator? :
if(m.find(key) != m.end()) {
...
}
我应该关心吗?
答案 0 :(得分:8)
如果m
为const
,则会返回const_iterator
;否则将返回iterator
。
如果您正在测试地图中是否存在元素,那么使用哪一个元素并不重要。
答案 1 :(得分:0)
这取决于您的地图是否为常量。如果是,你会得到一个const_iterator。如果没有,你会得到一个迭代器。