先挂一个官方文档里的声明
template <class ForwardIterator, class T>ForwardIterator
lower_bound (ForwardIterator first, ForwardIterator last,const T& val);
upper_bound的声明是类似的
lower_bound返回一个迭代器,指向第一个大于等于target的元素。
upper_bound返回一个迭代器,指向第一个大于target的元素。
可以这么理解,假如要向数组插入一个元素,那么可以插入的位置有一个范围,这个范围就是
[lower_bound,upper_bound]
这里借用一个官方文档的例子来帮助理解
// lower_bound/upper_bound example
#include <iostream> // std::cout
#include <algorithm> // std::lower_bound, std::upper_bound, std::sort
#include <vector> // std::v