如何在对象的向量上做lower_bound

How to do lower_bound on vector of objects

本文关键字:lower bound 向量 对象      更新时间:2023-10-16

我想知道是否可以在对象向量上执行lower_bound,但没有重载运算符<?更准确地说,我有对象的向量,它们有一个属性(许多属性之一(。我在排序时将对象推入该向量,以便我知道它已排序。我提到的属性正在发生变化,更具体的值正在减少测量时间的值。测量的时间就是循环的时间。因此,f.e. 起始值为 {1, 4, 5, 8, 10} 的向量,在第一次循环之后将具有值 { 0.5, 3.5, 4.5, 7.5, 9.5},依此类推。我想在向量达到零值时弹出它们的枚举。最后我想做lower_bound,以查找该属性的值低于 0 的对象中有多少。

像这样的东西(未经测试的代码(

std::vector<int> nums { 1,2,3,4,5 };
auto res = std::lower_bound(nums.begin(), nums.end(), 3, [](const int& a, const int& b){ return a<b;});