当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《std库中的哪个函数可以二元搜索向量并找到一个元素?》经验,为你挑选了2个好方法。

我有一个节点结构

struct Node{CString text, int id;};

在一个有序的矢量.

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



1> Ferruccio..:

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

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

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


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

2> Binary Worri..:

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

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

请看这里的样本

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

推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有