C ++提供了std :: sort,但它是否也能提供有效搜索的东西?

时间:2016-11-12 17:25:35

标签: c++ sorting c++11 stl std

我有一个实现operator<operator==的对象向量。 C ++提供了std :: sort来有效地对该向量进行排序。

std中是否还有一个函数可以反复有效地搜索向量?

我将对该有序向量进行多次搜索,因此std :: find似乎不是一个好选项,因为它只是遍历迭代器直到找到匹配。

2 个答案:

答案 0 :(得分:4)

当然,有。

例如,查看lower_boundupper_bound函数。

binary_search也可能有用。

所有这些函数都对排序的输入起作用,并具有对数的复杂性。

答案 1 :(得分:2)

std::binary_search

尝试#include <algorithm>