为生存而奔跑

   :: 首页 :: 联系 :: 聚合  :: 管理
  271 Posts :: 0 Stories :: 58 Comments :: 0 Trackbacks

留言簿(5)

我参与的团队

搜索

  •  

积分与排名

  • 积分 - 319337
  • 排名 - 75

最新评论

阅读排行榜

评论排行榜

lower_bound  upper_bound:
原型:template<class ForwardIterator, class T>
   inline ForwardIterator lower_bound(
      ForwardIterator First,
      ForwardIterator Last,
      const T& Value
   )
lower_bound返回[First,last)中,可以插入value的第一个位置,使得插入后仍旧满足按照operator<排序的顺序
 upper_bound返回[First,last)中,比value大的第一个元素的位置
当[First,last)中没有value这个数时,lower_bound和upper_bound返回的位置是同一个位置
注意这两个函数返回的都是迭代器

equal_range返回一对迭代器:第一个迭代器等于lower_bound返回的迭代器,第二个迭代器等于upper_bound返回的迭代器。
举例:
vector<Widget> vw;

sort(vw.begin(),vw.end());
typedef vector
<Widget>::iterator VWiter;
typedef pair
<VWIter,VWIter>VWIterPair;
VWIterPair p
=equal_range(vw.begin(),vw.end(),w);
if(p.first!=p.second)
{
     
}
cout<<"There are "<<distance(p.first,p.second)<<"elements in vw equal to w"<<endl;



posted on 2009-12-01 16:23 baby-fly 阅读(1558) 评论(0)  编辑 收藏 引用 所属分类: Effective STL / C++

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理