代码之家  ›  专栏  ›  技术社区  ›  leeeroy

m.find(…)==m.end()-使用迭代器或常量迭代器

  •  6
  • leeeroy  · 技术社区  · 15 年前

    STD:MAP/find同时提供了迭代器和迭代器,例如

      iterator end ();
      const_iterator end () const
    

    出于好奇,如果我有一个STD::MAP,这里将被调用/比较,一个迭代器还是一个常数迭代器?:

    if(m.find(key) != m.end()) {
       ...
    }
    

    我应该在乎吗?

    2 回复  |  直到 15 年前
        1
  •  8
  •   James McNellis    15 年前

    如果 m const 然后 const_iterator 将被退回;否则 iterator 将被退回。

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

        2
  •  0
  •   Fred Larson    15 年前

    这取决于你的地图是否是常量。如果是,您将得到一个const_迭代器。如果不是,就得到一个迭代器。