正在检查排序列表中是否有一个范围内的数字
Checking if sorted list has a number in a range
假设我有一个排序的数组L,并且我得到了一些数字I,j。是否有库函数用于检查L是否包含范围[i,j]内的数字?我知道这很容易通过类似二进制搜索的算法实现,但我更愿意避免它。
它可以实现为std::lower_bound
:的小型包装器
template<typename ForwardIt, typename T>
bool has_in_range(ForwardIt first, ForwardIt last, const T& i, const T& j) {
auto lb = std::lower_bound(first, last, i);
return lb != last && !(j < *lb);
}
在上面的代码中,我有意使用operator <
进行比较,因此您可以很容易地将此函数更改为使用自定义比较谓词。
实时演示
std::vector<int> myVec;
for( int a = i; a <= j; a++)
myVec.push_back(a);
bool contains = std::any_of(l.begin(), l.end(),
[&myVec] (int n) { if (std::find(myVec.begin(), myVec.end(), n) == myVec.end())
return false;
return true;});
相关文章:
- 求出有多少个数字是完美平方,而sqrt()是L,R范围内的素数
- 不计算一个范围内的完美数
- 我有一个对象,它将在整个程序的持续时间内实例化,但一个类成员不会,我应该动态分配它吗?
- 我有一个数组,我想输入一个范围,然后找到范围内所有偶数的总和?
- 为什么C++找不到布尔运算符,当有一个!范围内的运算符?
- C :在一个范围内计数偶数 /奇数
- 在一个范围内的阵列中找到三胞胎
- 如何检查一个范围内的值是否是另一个范围内的值的倍数
- 正在检查排序列表中是否有一个范围内的数字
- 有一个标准的算法可以在一个范围内迭代吗
- 在一个范围内生成不同的随机数
- 内联函数有一个非内联副本
- 如何在C++中检查一个集合是否有某个范围内的元素
- 使用srand(time(0))猜测一个范围内的数字
- Qt QXYSeries和ChartView -修改悬停行为在一个范围内触发
- 在一个范围内查找素数的直观方法
- 是否有一个进程内的本地管道在Qt
- 一个范围内的成功随机数
- 如何在C++的另一个范围内使用局部变量
- 将十进制数保持在一个范围内