假如说我要自定义函数用upper_bound来求数组中第一个能被value整除的数,此时我用自定义函数加upper_bound怎么都会找不出来,比如说:
#include<iostream>
#include<algorithm>
using namespace std;
bool cmp(const int& val,const int& e) {
return (e%val) == 0;
}
int a[7] = {0,2,4,5,7,9};
int main() {
int key = upper_bound(a+1,a+6,2,cmp)-a;
cout << key;
return 0;
}
此时输出的是6,也就是找不到。
但是也有例外,假如说我把
upper_bound(a+1,a+6,2,cmp)
里的2换成5就能找到,这是为什么呢?qaq