如何计算双打数组中特定范围内的值数量
How to calculate number of values in a particular range in an array of doubles
例如,我有一系列双打,我想搜索等于2.0的值,但是由于它是双倍的数组,因此很难找到精确的值在2-1e-10,2 1e-10范围内找到值。我已经看到有些人使用upper_bound和lower_bound这样做。我该怎么做?
只需使用谓词:
std::count_if(
begin(array),
end(array),
[](double v) { return std::abs(v - 2.0) <= 1e-10; }
);
由于您已经定义了接受值的界限或阈值,为什么不写
if ( val > 2-1e-10 && val < 2+1e-10 ) {}
相关文章:
- 并行用于C++17中数组索引范围内的循环
- 在C++中使用变量而不是"#define"来指定数组大小是不是一种糟糕的做法?(C错误:在文件范围内
- 按字母顺序对结构内数组变量中的名称进行排序
- Excel 不愉快地显示大型 2D 范围公式数组
- 变量未在此范围内声明 数组线性搜索
- 对于多个查询,查找在 l 到 r 范围内具有相同元素的最长公共子数组
- C++ 如何在给定范围内将数组中的数字相加?
- C++ 从指定范围内的文件中读取数组
- C++范围?将数组传递给函数时出现问题
- 无法获取数组内数组的总和
- 结构内数组的设置值
- 如何计算双打数组中特定范围内的值数量
- 打印特定范围内的数组
- C 11中类范围的数组初始化
- Seg故障是由于试图访问超出范围的数组,原因不明
- 阻止调用类内数组的默认构造函数
- 允许访问超出范围的数组下标
- 未在范围 C++ [数组] 中声明
- 我们如何让C++程序自己修复超出范围的数组索引
- 类函数内数组的长度