2017-03-02 50 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; } 
); 
相關問題