例如,我有一个双精度数组,我想搜索等于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; }
);

10-05 18:11