log(n)std :: find_if可能吗?

时间:2017-11-06 10:38:31

标签: c++ algorithm search stl

我将定义一个类并使用一个容器(可能是std::set)和一个自定义比较器函数(基本上是类成员变量的原始整数比较)。我想知道我是否可以以某种方式保留此集std::sort并使用std::find_if以对数性能而非天真的线性搜索。

提前致谢。

1 个答案:

答案 0 :(得分:9)

std::set是一个有序的容器。它已经按照您提供的比较器进行了分类。只需使用自己的std::set::find成员函数。

使用C ++ 14及更高版本,您甚至可以调整比较器,以允许find使用与您的元素相当的任何类型,并遵守相同的顺序。