STL Map使用详解(二)

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

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值