set中的lower_bound和upper_bound
时间: 2023-11-20 13:59:52 浏览: 207
set中的lower_bound和upper_bound是两个函数,它们都用于在有序集合中查找元素。其中,lower_bound函数返回一个迭代器,指向第一个不小于给定值的元素,而upper_bound函数返回一个迭代器,指向第一个大于给定值的元素。如果给定值在集合中不存在,那么lower_bound和upper_bound函数都返回一个指向第一个大于给定值的元素的迭代器。
以下是一个使用lower_bound和upper_bound函数的例子:
假设我们有一个set s,其中包含以下元素:{1, 2, 4, 5, 7}。现在我们想要查找集合中第一个不小于3的元素和第一个大于3的元素,可以使用lower_bound和upper_bound函数来实现:
```C++
#include <iostream>
#include <set>
int main() {
std::set<int> s = {1, 2, 4, 5, 7};
auto it1 = s.lower_bound(3);
auto it2 = s.upper_bound(3);
std::cout << "lower_bound(3) = " << *it1 << std::endl; // 输出:lower_bound(3) = 4
std::cout << "upper_bound(3) = " << *it2 << std::endl; // 输出:upper_bound(3) = 4
return 0;
}
```
在上面的例子中,lower_bound(3)返回一个指向4的迭代器,因为4是集合中第一个不小于3的元素。而upper_bound(3)也返回一个指向4的迭代器,因为4是集合中第一个大于3的元素。
阅读全文