std库中的哪个函数可以二元搜索向量并找到一个元素?

baa*_*h05 6 c++ vector std binary-search

我有一个节点结构

struct Node{CString text, int id;};
Run Code Online (Sandbox Code Playgroud)

在一个有序的矢量.

我想知道算法中是否有一个函数可以对向量进行二元搜索并找到一个元素.

Fer*_*cio 21

std::binary_search() 将告诉您容器中是否存在值.

std::lower_bound()/std::upper_bound() 将返回迭代器到值的第一个/最后一个匹配项.

您的对象需要实现operator<这些算法才能工作.

  • 或者你需要为`binary_search`使用另一个重载并在第4个参数提供一个比较器.这需要与您用于排序的比较器相同. (4认同)

Bin*_*ier 6

是的,有一个名为"binary_search"的函数std :: binary_search

你先给它,最后给它一个值或一个谓词.

请看这里的样本

将它与Martin York的运算符== 结合起来你应该没问题(或者你可以写一个谓词仿函数