c++之`equal_range`

c++之`equal_range`

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;
}
~                                                                                                                                                         
~                               

打赏,谢谢~~

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,多谢支持~

打开微信扫一扫,即可进行扫码打赏哦