m.find(...)== m.end() - 使用的是iterator或const_iterator

lee*_*roy 6 c++ templates stl

std :: map find/end都提供了const_iterator和iterator,例如

  iterator end ();
  const_iterator end () const
Run Code Online (Sandbox Code Playgroud)

出于好奇,如果我有一个std :: map,它将在这里被调用/比较,它是一个迭代器还是一个const_iterator?:

if(m.find(key) != m.end()) {
   ...
}
Run Code Online (Sandbox Code Playgroud)

我应该关心吗?

Jam*_*lis 8

如果mconst,那么const_iterator将返回一个; 否则iterator将退还.

如果您所做的只是测试地图中是否存在元素,那么使用哪一个元素并不重要.