相关疑难解决方法(0)

std :: upper_bound和std :: lower_bound的不同比较签名

以下是两个std::lower_bound&的示例示例std::upper_bound,请注意比较lambda的签名传递给它们 -

const auto lower_x = std::lower_bound(
          points.begin(), points.end(), rec.min_corner.x,

          [](const RankedPoint &rp, const double x) { return rp.point.x < x; });

const auto upper_x = std::upper_bound(
          points.begin(), points.end(), rec.max_corner.x,

          [](const double x, const RankedPoint &rp) { return x < rp.point.x; });
Run Code Online (Sandbox Code Playgroud)

保持签名完全相反的可能原因是什么?当我用auto而不是带有错误签名的明确类型时,我没有意识到这一点和gcc编译(clang没有).耗费了我10分钟的挫折感.

c++ stl c++-standard-library c++11 c++14

6
推荐指数
1
解决办法
602
查看次数

标签 统计

c++ ×1

c++-standard-library ×1

c++11 ×1

c++14 ×1

stl ×1