c++ set lower_bound
时间: 2023-08-20 22:33:50 浏览: 151
在 C++ 中,std::set 是一个有序的关联容器,其中的元素按照一定的规则进行排序。set::lower_bound() 是 set 容器的一个成员函数,它用于查找第一个大于或等于给定元素的位置,并返回该位置的迭代器。
下面是一个示例代码,展示了如何使用 set::lower_bound() 函数:
```c++
#include <iostream>
#include <set>
int main() {
std::set<int> my_set{1, 2, 3, 5, 6, 8};
// 查找第一个大于或等于 4 的元素的位置
auto it = my_set.lower_bound(4);
if (it != my_set.end()) {
std::cout << "第一个大于或等于 4 的元素是:" << *it << std::endl;
} else {
std::cout << "没有大于或等于 4 的元素" << std::endl;
}
return 0;
}
```
输出结果为:
```
第一个大于或等于 4 的元素是:5
```
在这个示例中,lower_bound() 函数返回了一个指向元素值为 5 的迭代器,因为 5 是第一个大于或等于 4 的元素。如果 set 容器中没有大于或等于 4 的元素,lower_bound() 函数会返回 set::end() 迭代器。
相关问题
C++中lower_bound和upper_bound的用法
在C++中,`lower_bound`和`upper_bound是两个用于查找有序容器中元素位置的函数。
1. `lower_bound`函数用于查第一个大于或等于给定值的元素的位置。它接受两个参数:容器的起始迭代器和要查找的值。返回值是一个迭代器,指向第一个大于或等于给定值的元素位置。如果容器中不存在大于或等于给定值的元素,则返回指向容器末尾的迭代器。
2. `upper_bound`函数用于查找第一个大于给定值的元素的位置。它接受两个参数:容器的起始迭代器和要查找的值。返回值是一个迭代器,指向第一个大于给定值的元素位置。如果容器中不存在大于给定值的元素,则返回指向容器末尾的迭代器。
这两个函数通常用于有序容器(如vector、set、map)中进行二分查找。它们的时间复杂度为O(log n),其中n是容器中元素的个数。
set lower_bound' c++
在C++中,要设置一个数的下界(lower bound),你可以使用STL(标准模板库)中的lower_bound函数。lower_bound函数用于在有序容器(如数组、向量、集合、映射等)中查找第一个大于等于给定值的元素,并返回一个指向它的迭代器。
这是lower_bound函数的语法:
```cpp
template <class ForwardIterator, class T>
ForwardIterator lower_bound (ForwardIterator first, ForwardIterator last, const T& val);
```
其中,first和last是表示要搜索的范围的迭代器,val是要搜索的值。
以下是一个示例代码,演示了如何使用lower_bound函数在一个有序数组中查找大于等于给定值的元素的下界:
```cpp
#include <iostream>
#include <algorithm>
#include <vector>
int main() {
std::vector<int> nums = {1, 2, 3, 4, 5};
int target = 3;
auto it = std::lower_bound(nums.begin(), nums.end(), target);
if (it != nums.end()) {
std::cout << "Lower bound of " << target << " is " << *it << std::endl;
} else {
std::cout << "No lower bound found for " << target << std::endl;
}
return 0;
}
```
输出结果为:
```
Lower bound of 3 is 3
```
在这个
阅读全文