equal_range 是C++STL中的一种二分查找的算法,试图在已经排序的[first, last]中寻找value,并返回一对迭代器i,j 意思是在[i,j)范围内都是这个值 value,注意i,j 并不是index,要想获得真正的index,需要[i-num.begin(), j-num.begin()-1]
看下面的例子
#include <iostream>
#include <vector>
using namespace std;
int main(){
vector<int> nums(6,0);
nums[0]=1;
nums[1]=1;
nums[2]=2;
nums[3]=2;
nums[4]=2;
nums[5]=9;
auto ret = equal_range(nums.begin(), nums.end(), 2);
cout<<ret.first-nums.begin()<<endl;
cout<<ret.second-nums.begin()-1<<endl;
return 0;
}
~
~





近期评论