0
例如,我有一個雙精度數組,我想搜索等於2.0的值,但由於它是雙精度數組,所以它很難找到確切的值,所以我想找到2-1e-10,2 + 1e-10範圍內的值。我看到一些人使用upper_bound和lower_bound來完成它。 我該怎麼做?如何計算雙數組中的特定範圍內的值的數量
例如,我有一個雙精度數組,我想搜索等於2.0的值,但由於它是雙精度數組,所以它很難找到確切的值,所以我想找到2-1e-10,2 + 1e-10範圍內的值。我看到一些人使用upper_bound和lower_bound來完成它。 我該怎麼做?如何計算雙數組中的特定範圍內的值的數量
既然你已經定義了邊界或接受一個值的閾值,爲什麼不只是寫
if (val > 2-1e-10 && val < 2+1e-10) {}
只需使用一個斷言:
std::count_if(
begin(array),
end(array),
[](double v) { return std::abs(v - 2.0) <= 1e-10; }
);
上限和下限不是本 – bolov