C++ vector查找
时间: 2023-11-03 07:21:08 浏览: 84
lower_bound函数是一个常用的算法函数,用于在有序容器(如数组、向量、列表等)中查找第一个大于等于给定值的元素的位置。它返回一个迭代器,指向容器中第一个不小于给定值的元素,如果找不到满足条件的元素,则返回容器的end()迭代器。
下面是lower_bound函数的使用示例:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> nums = {1, 2, 3, 4, 4, 4, 5, 6};
int target = 4;
std::vector<int>::iterator iter = std::lower_bound(nums.begin(), nums.end(), target);
if (iter != nums.end()) {
std::cout << "First element >= " << target << " is at position " << std::distance(nums.begin(), iter) << std::endl;
} else {
std::cout << "No element >= " << target << " found!" << std::endl;
}
return 0;
}
```
这段代码会输出 "First element >= 4 is at position 3",因为在有序容器nums中,第一个大于等于4的元素是4,它位于索引位置3。
使用lower_bound函数时,需要确保容器已经按照升序排序,这样才能得到正确的结果。
阅读全文