小于X的元素数

Number of elements less than X

本文关键字:元素 小于      更新时间:2023-10-16

我需要一个能够快速(log N)计数小于某个值的元素数量/修改值的结构。我知道使用R-B树或类似的树很容易,但我想通过使用STL来节省时间,STL已经实现了这些树。然而,我找不到任何能满足我需要的函数——这可能吗,可能使用某种技巧吗?我知道它需要存储每个子树中的元素数量,这在正常情况下可能不会做到。

您可以使用一个简单的排序向量或数组:

std::vector<int> V;
// (fill V with values)
std::sort(V.begin(), V.end());
int numValsLessThan5 = std::lower_bound(V.begin(), V.end(), 5) - V.begin();
int numValsLessThanOrEqualTo5 = std::upper_bound(V.begin(), V.end(), 5) - V.begin();

CCD_ 1在支持随机访问的容器上使用时具有对数复杂度。