C++中lower_bound函数和upper_bound函数
2018-01-02 23:41
375 查看
lalala
我来更博了 吼吼哈嘿
ForwardIter lower_bound(ForwardIter first, ForwardIter last,const _Tp& val)算法返回一个非递减序列[first, last)中的第一个大于等于值val的位置。
ForwardIter upper_bound(ForwardIter first, ForwardIter last, const _Tp& val)算法返回一个非递减序列[first, last)中的第一个大于值val的位置。
结果:2 4
lower的意义是对于给定的已经排好序的a,key最早能插入到那个位置
0 1 | 2 2 3 所以2最早插入到2号位置
upper的意义是对于给定的已经排好序的a,key最晚能插入到那个位置
0 1 2 2 | 3 所以2最晚插入到4号位置
加了比较函数:
结果仍然是2 4 ,可以得出一个结论,cmp里函数应该写的是小于运算的比较
结果是4 2
我来更博了 吼吼哈嘿
ForwardIter lower_bound(ForwardIter first, ForwardIter last,const _Tp& val)算法返回一个非递减序列[first, last)中的第一个大于等于值val的位置。
ForwardIter upper_bound(ForwardIter first, ForwardIter last, const _Tp& val)算法返回一个非递减序列[first, last)中的第一个大于值val的位置。
int a[]={0,1,2,2,3}; printf("%d\n",lower_bound(a,a+5,2,cmp)-a); printf("%d\n",upper_bound(a,a+5,2,cmp)-a);
结果:2 4
lower的意义是对于给定的已经排好序的a,key最早能插入到那个位置
0 1 | 2 2 3 所以2最早插入到2号位置
upper的意义是对于给定的已经排好序的a,key最晚能插入到那个位置
0 1 2 2 | 3 所以2最晚插入到4号位置
加了比较函数:
bool cmp(int a,int b)
{
return a<b;
}
int main()
{
int a[]={0,1,2,2,3}; printf("%d\n",lower_bound(a,a+5,2,cmp)-a); printf("%d\n",upper_bound(a,a+5,2,cmp)-a);return 0 ;
}
结果仍然是2 4 ,可以得出一个结论,cmp里函数应该写的是小于运算的比较
bool cmp(int a,int b)
{
return a<=b;
}
int main()
{
int a[]={0,1,2,2,3}; printf("%d\n",lower_bound(a,a+5,2,cmp)-a); printf("%d\n",upper_bound(a,a+5,2,cmp)-a);return 0 ;
}
结果是4 2
相关文章推荐
- C++中lower_bound函数和upper_bound函数
- C++中lower_bound函数和upper_bound函数
- C++中lower_bound函数和upper_bound函数
- C++中lower_bound函数和upper_bound函数
- C++中lower_bound函数和upper_bound函数
- C++中lower_bound函数和upper_bound函数 以及 sort(参数)
- C++10.5 multimap和multiset类型---equal_range、lower_bound 和upper_bound函数
- C++中lower_bound函数和upper_bound函数
- C++中lower_bound函数和upper_bound函数
- C++中lower_bound函数和upper_bound函数 以及 sort(参数)
- C++中sort,upper_bound,lower_bound,*max_element,unique用法介绍
- C++ STL lower_bound & upper_bound
- C++ STL 之 lower_bound and upper_bound
- C++ STL:lower_bound与upper_bound实现
- C/C++-STL中lower_bound与upper_bound的用法
- c++ 二分查找的函数 lower_bound & upper_bound & binary_search
- C/C++-STL中lower_bound与upper_bound的用法以及cmp函数
- c++ 二分查找的函数 lower_bound & upper_bound & binary_search
- Convert a String In C++ To Upper or Lower Case
- C++之 lower_bound And upper_bound And insert