lower_bound in C++ minus vector

lower_bound in C++ minus vector

本文关键字:minus vector C++ in bound lower      更新时间:2023-10-16

下面的代码有什么作用?

for (i = 1; i <= n; i++)
    v[i] = std::lower_bound(prim+1, prim+h+1, val[i]) - prim;

其中primvval是整数的向量。

我认为你的描述是错误的,prim是一个迭代器或指针而不是一个向量。

此行取 lower_bound 的返回值,该值与迭代器的类型相同,并减去该迭代器。这为您提供了prim引用的容器的索引。

你应该从阅读函数lower_bound的作用开始:http://www.cplusplus.com/reference/algorithm/lower_bound/

在这种情况下,对于向量 v[] 中的每个元素 v[i],我们找到一个向量的 prim[] 索引 k,其值最低,其中 prim[k]>=val[i]。