我有一个排序的 vector ,想在其中找到一个特定的元素。我可以为此使用binary_search
,但是它只能告诉它是否存在。我还需要一个迭代器来访问元素。有没有一种简单的方法,或者我必须顺序搜索它。
任何帮助表示赞赏。
最佳答案
查看 lower_bound
和 upper_bound
。 lower_bound
将迭代器赋予第一个匹配元素,而upper_bound
将迭代器赋予最后一个匹配元素。
如果任何一种算法都找不到匹配项,则它将迭代器返回到可以插入该项以维护已排序容器的位置。
我一直觉得binary_search
被误导了。