我有一个排序的 vector ,想在其中找到一个特定的元素。我可以为此使用 binary_search
但它只会告诉它是否存在。我还需要一个迭代器来访问该元素。有没有简单的方法,或者我必须按顺序搜索它。
感谢任何帮助。
最佳答案
查看lower_bound
和 upper_bound
. lower_bound
将迭代器指向第一个匹配元素,而 upper_bound
将迭代器指向最后一个匹配元素。
如果任何一个算法都找不到匹配项,它会返回一个迭代器到可以插入项目的地方,以维护一个排序的容器。
我一直觉得 binary_search
被误导了。
关于c++ - 在 log(n) 时间内获取指向已排序 vector 中元素的迭代器。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17552934/