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

cor*_*sel 3 c++ algorithm search stl

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

提前致谢.

Sto*_*ica 9

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

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