C ++中的lower_bound减去向量

时间:2016-03-16 21:45:28

标签: c++ stl

以下代码有何作用?

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

primvval是整数向量。

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

您应该首先阅读lower_bound函数的作用:http://www.cplusplus.com/reference/algorithm/lower_bound/

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