如何对对象向量执行 lower_bound

How to do lower_bound on vector of objects

我想知道是否可以在不重载 operator< 的情况下对对象向量执行 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;});