STL Map使用详解(二)

    技术2022-05-12  31

      Map的删除

      STL Map的删除能保证平均对数时间复杂度。函数erase可以用来删除map的一个元素,也可以

    删除一个范围内的元素。

      iterator erase( iterator _where ); //删除iterator指向的元素

      iterator erase( iterator range_start,  iterator range_end); //删除从start到end的元素(不包括end)

      iterator erase( const key& _key) ;  //删除key

      另外,也可以用clear()函数来删除map的所有元素。clear的底层实现是erase(map.begin(),map.end()).

     

      map的swap函数

      void swap( map& _right)

      交换两个map的内容。map的底层实现保证swap是非常有效率的,几乎是常数时间。(通常只需要交换两个指针的值)。值得注意的是,两个map的模板类型必须是一样,否则会出错。

     

      map元素的查找

      一般的STL容器都支持find和finc_if操作。map的查找是对数时间的。对于2的32次方个元素,只需查找32次。由此可见map的高效。

      find的声明:

      iterator find(const Key& _Key) const;

      const_iterator find(const Key& _Key) const;

    如果查找成功,返回指向这个元素的迭代器,如果返回失败,则返回end()迭代器。

     

      map返回指定元素的上下限。

      返回map一个指定元素的前一个元素的迭代器和后一个元素迭代器。用

      pair<iterator, iterator> equal_range(const key& _key);

      pair<const_iterator, const_iterator> equal_range(const key& _key);

     

      const_iterator lower_bound(const key& _key); // 返回指定元素的上限

      iterator lower_bound(const key& _key); // 返回指定元素的上限

      const_iterator upper_bound(const key& _key) // 返回指定元素的下限

      iterator upper_bound(const key& _key) // 返回指定元素的下限  

     

     

     

     

     

     


    最新回复(0)