例如,我有一个双打数组,我想搜索等于2.0的值,但因为它是一个双精度数组,所以很难找到确切的值,所以我想找到2-范围内的值1E-10,2 + 1E-10。我见过有些人使用upper_bound和lower_bound来做。 我该怎么做?
答案 0 :(得分:1)
只需使用谓词:
std::count_if(
begin(array),
end(array),
[](double v) { return std::abs(v - 2.0) <= 1e-10; }
);
答案 1 :(得分:0)
由于您已经定义了接受值的界限或阈值,为什么不写
if ( val > 2-1e-10 && val < 2+1e-10 ) {}