2017-03-02 76 views
0

例如,我有一个双精度数组,我想搜索等于2.0的值,但由于它是双精度数组,所以它很难找到确切的值,所以我想找到2-1e-10,2 + 1e-10范围内的值。我看到一些人使用upper_bound和lower_bound来完成它。 我该怎么做?如何计算双数组中的特定范围内的值的数量

+0

上限和下限不是本 – bolov

回答

0

既然你已经定义了边界或接受一个值的阈值,为什么不只是写

if (val > 2-1e-10 && val < 2+1e-10) {} 
1

只需使用一个断言:

std::count_if(
    begin(array), 
    end(array), 
    [](double v) { return std::abs(v - 2.0) <= 1e-10; } 
); 
相关问题