我遇到过这样一种情况, set::find 不是查找对象的正确方法,因为我以不同的方式(通过 std::find_if)查找对象,而不是在集合中对其进行排序。我没有找到任何关于以这种方式查找元素的复杂性信息。我认为它是线性的,因为遍历“无序”容器以找到匹配项是线性的。
最佳答案
您可以查看 here 并看到 find_if 的复杂度是线性的。
这是因为 find_if 是一种通用算法,它不知道它所使用的某种类型的容器。所以它不能使用不同容器的特性来促进搜索过程,而只是检查所有元素以找到合适的元素。