std::equal_range - huycwork的日志 - 网易博客

std::equal_range - huycwork的日志 - 网易博客

equal_range

原型:

 #include <algorithm>
 pair
<forward_iterator,forward_iterator> equal_range( forward_iterator first, forward_iterator last, const TYPE& val );
 pair
<forward_iterator,forward_iterator> equal_range( forward_iterator first, forward_iterator last, const TYPE& val, CompFn comp );

函数equal_range()返回first和last之间等于val的元素区间. 此函数假定first和last区间内的元素可以使用<操作符或者指定的comp执行比较操作.

equal_range()可以被认为是lower_boundupper_bound的结合, pair中的第一个迭代器由lower_bound返回, 第二个则由upper_bound返回.

例如, 下面的代码使用equal_range()探测一个有序的vector中的可以插入数字8的位置:

 vector<int> nums;
 nums.push_back( -242 );
 nums.
push_back( -1 );
 nums.push_back( 0 );
 nums.
push_back( 5 );
 nums.
push_back( 8 );
 nums.
push_back( 8 );
 nums.push_back( 11 );
 pair<vector<int>::iterator, vector<int>::iterator> result;
 int new_val = 8;  
 result
= equal_range( nums.begin(), nums.end(), new_val );
cout
 << "The first place that " << new_val
 
<< " could be inserted is before " << *result.first
 
<< ", and the last place that it could be inserted is before " << *result.second
 
<< endl;

上面的代码将产生如下输出:

 The first place that 8 could be inserted is before 8, and the last place that it could be inserted is before 11

相关主题: binary_search, lower_bound, upper_bound

posted on 2013-01-10 13:55  lexus 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/lexus/archive/2013/01/10/2854678.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值