📅  最后修改于: 2023-12-03 15:23:22.515000             🧑  作者: Mango
upper_bound()
函数upper_bound()
是STL中的一个函数,它用于在有序容器中查找第一个大于给定值的元素。
函数原型如下:
template<class ForwardIt, class T>
ForwardIt upper_bound(ForwardIt first, ForwardIt last, const T& value);
first
:要搜索的范围的开头last
:要搜索的范围的结尾value
:要查询的值返回一个迭代器,它指向在给定范围内第一个大于value
的元素。
以下是在C++中使用upper_bound()
的基本步骤:
sort()
函数对容器进行排序。std::vector<int> vec = { 1, 3, 5, 7, 9, 11 };
std::sort(vec.begin(), vec.end());
upper_bound()
函数查找第一个大于给定值的元素。auto result = std::upper_bound(vec.begin(), vec.end(), 6);
if (result != vec.end()) {
std::cout << "The first element greater than 6 is: " << *result << std::endl;
}
下面是一个完整的示例代码,使用upper_bound()
函数查找第一个大于给定值的元素。
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> vec = { 1, 3, 5, 7, 9, 11 };
// 使用sort对容器进行排序
std::sort(vec.begin(), vec.end());
// 使用upper_bound查找第一个大于6的元素
auto result = std::upper_bound(vec.begin(), vec.end(), 6);
// 如果找到了大于6的元素,则输出该元素
if (result != vec.end()) {
std::cout << "The first element greater than 6 is: " << *result << std::endl;
}
return 0;
}
输出结果:
The first element greater than 6 is: 7
upper_bound()
函数在STL中是一个非常有用的函数,它可以方便地在有序容器中查找第一个大于给定值的元素。在使用该函数时,需要注意容器必须是有序的,并且必须使用sort()
函数对容器进行排序。