Is a log(n) std::find_if possible?

Is a log(n) std::find_if possible?

本文关键字:find possible if std log Is      更新时间:2023-10-16

我将定义一个类并使用带有自定义比较器函数的容器(可能是std::set)的(基本上,对类成员变量进行原始整数比较)。我想知道我是否可以以某种方式保持这个集合std::sort ed 并使用具有对数性能的std::find_if而不是朴素的线性搜索。

提前谢谢。

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

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