set的upper_bound
时间: 2024-01-31 08:03:28 浏览: 22
`std::set` 是 C++ 中的一个关联容器,它按照严格弱序排序存储元素,并且每个元素只能在容器中出现一次。`std::set` 提供了一系列函数来进行元素的查找和插入操作,其中 `upper_bound()` 是其中之一。
`upper_bound()` 函数用于在有序集合中查找大于给定值的第一个元素的迭代器。它返回一个指向大于给定值的第一个元素的迭代器,如果不存在这样的元素,则返回指向集合末尾的迭代器。
下面是一个示例代码,演示了如何使用 `upper_bound()` 函数:
```cpp
#include <iostream>
#include <set>
int main() {
std::set<int> mySet = {10, 20, 30, 40, 50};
// 使用 upper_bound() 查找大于 25 的第一个元素
auto it = mySet.upper_bound(25);
// 如果存在大于 25 的元素,则输出它
if (it != mySet.end()) {
std::cout << "First element greater than 25: " << *it << std::endl;
} else {
std::cout << "No element greater than 25 found" << std::endl;
}
return 0;
}
```
输出结果为:First element greater than 25: 30
在上面的代码中,我们创建了一个有序集合 `mySet`,其中包含一些整数。然后,我们使用 `upper_bound()` 函数查找大于 25 的第一个元素的迭代器。如果找到了这样的元素,我们输出它;否则,我们输出一个提示消息。
注意,`upper_bound()` 函数返回的迭代器指向的是集合中大于给定值的第一个元素,并不一定是唯一的元素。如果集合中存在多个相等的大于给定值的元素,`upper_bound()` 函数返回其中任意一个元素的迭代器。