本文主要是介绍C++ lower_bound与upper_bound,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
lower_bound()返回一个 iterator 它指向在[first,last)标记的有序序列中可以插入value,而不会破坏容器顺序的第一个位置,而这个位置标记了一个大于等于value 的值。
template<typename ForwardIterator,typename T>ForwardIterator lower_bound(ForwardIterator first,ForwardIterator last,T &value){while(first!=last){auto mid=next(first,distance(first,last)/2);if(value>*mid)first=++mid;else last=mid;}return first;}template<typename ForwardIterator,typename T>ForwardIterator upper_bound(ForwardIterator first,ForwardIterator last,T &value){while(first!=last){auto mid=next(first,distance(first,last)/2);if(value>=*mid)first=++mid;else last=mid;}return first;}
这篇关于C++ lower_bound与upper_bound的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!