现在的位置: 首页 > 综合 > 正文

STL Map使用详解(二)

2013年03月05日 ⁄ 综合 ⁄ 共 1015字 ⁄ 字号 评论关闭

  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) // 返回指定元素的下限  

 

 

 

 

 

 

抱歉!评论已关闭.