我将定义一个类并使用一个容器(可能是std::set
)和一个自定义比较器函数(基本上是类成员变量的原始整数比较)。我想知道我是否可以以某种方式保留此集std::sort
并使用std::find_if
以对数性能而非天真的线性搜索。
提前致谢。
答案 0 :(得分:9)
std::set
是一个有序的容器。它已经按照您提供的比较器进行了分类。只需使用自己的std::set::find
成员函数。
使用C ++ 14及更高版本,您甚至可以调整比较器,以允许find
使用与您的元素相当的任何类型,并遵守相同的顺序。