find()函数对集合有效吗?

时间:2018-06-04 19:12:31

标签: c++ find set

就我而言,二进制搜索代表最有效的方法来确定在排序数组中是否存在某个元素x。因此,我想知道使用find()或count()函数是否是一个好主意,以便执行寻找元素的过程,或者使用排序数组而不是集合更合理。应用二进制搜索方法。

2 个答案:

答案 0 :(得分:3)

是的,效率很高。

集合包含唯一且已排序的元素。因此,find()使用二进制搜索并且在一组N个元素中具有O(logN)复杂度。插入也是对数的,以保持其排序和唯一。

答案 1 :(得分:0)

set::find()效率很高,O(log n)。

如果您不需要按顺序访问元素,则应考虑使用unordered_setunordered_set::find()平均为O(1)。