MSTL 1.4.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
边界查找算法

在有序范围内查找边界的二分查找算法 更多...

函数

template<typename Iterator, typename T, typename Compare, enable_if_t< is_ranges_fwd_iter_v< Iterator >, int > = 0>
constexpr Iterator lower_bound (Iterator first, Iterator last, const T &value, Compare comp)
 查找有序范围中第一个不小于指定值的元素位置
template<typename Iterator, typename T>
constexpr Iterator lower_bound (Iterator first, Iterator last, const T &value)
 lower_bound的默认比较版本
template<typename Iterator, typename T, typename Compare, enable_if_t< is_ranges_fwd_iter_v< Iterator >, int > = 0>
constexpr Iterator upper_bound (Iterator first, Iterator last, const T &value, Compare comp)
 查找有序范围中第一个大于指定值的元素位置
template<typename Iterator, typename T>
constexpr Iterator upper_bound (Iterator first, Iterator last, const T &value)
 upper_bound的默认比较版本
template<typename Iterator, typename T, enable_if_t< is_ranges_fwd_iter_v< Iterator >, int > = 0>
constexpr bool binary_search (Iterator first, Iterator last, const T &value)
 在有序范围内进行二分查找
template<typename Iterator, typename T, typename Compare, enable_if_t< is_ranges_fwd_iter_v< Iterator >, int > = 0>
constexpr bool binary_search (Iterator first, Iterator last, const T &value, Compare comp)
 binary_search的谓词版本
template<typename Iterator1, typename Iterator2, typename Compare, enable_if_t< is_ranges_input_iter_v< Iterator1 > &&is_ranges_input_iter_v< Iterator2 >, int > = 0>
constexpr bool includes (Iterator1 first1, Iterator1 last1, Iterator2 first2, Iterator2 last2, Compare comp)
 检查一个有序范围是否包含另一个有序范围的所有元素
template<typename Iterator1, typename Iterator2>
constexpr bool includes (Iterator1 first1, Iterator1 last1, Iterator2 first2, Iterator2 last2)
 includes的默认比较版本

详细描述

在有序范围内查找边界的二分查找算法

函数说明

◆ binary_search() [1/2]

template<typename Iterator, typename T, enable_if_t< is_ranges_fwd_iter_v< Iterator >, int > = 0>
bool binary_search ( Iterator first,
Iterator last,
const T & value )
constexpr

在有序范围内进行二分查找

模板参数
Iterator迭代器类型,需要满足前向迭代器要求
T查找值的类型
参数
first范围的起始迭代器
last范围的终止迭代器
value要查找的值
返回
如果找到value则返回true,否则返回false

在文件 search.hpp132 行定义.

引用了 _MSTL , 以及 lower_bound().

◆ binary_search() [2/2]

template<typename Iterator, typename T, typename Compare, enable_if_t< is_ranges_fwd_iter_v< Iterator >, int > = 0>
bool binary_search ( Iterator first,
Iterator last,
const T & value,
Compare comp )
constexpr

binary_search的谓词版本

模板参数
Iterator迭代器类型,需要满足前向迭代器要求
T查找值的类型
Compare比较函数类型
参数
first范围的起始迭代器
last范围的终止迭代器
value要查找的值
comp比较函数
返回
如果找到value则返回true,否则返回false

在文件 search.hpp149 行定义.

引用了 _MSTL , 以及 lower_bound().

◆ includes() [1/2]

template<typename Iterator1, typename Iterator2>
bool includes ( Iterator1 first1,
Iterator1 last1,
Iterator2 first2,
Iterator2 last2 )
constexpr

includes的默认比较版本

模板参数
Iterator1主序列迭代器类型
Iterator2子序列迭代器类型
参数
first1主序列起始迭代器
last1主序列终止迭代器
first2子序列起始迭代器
last2子序列终止迭代器
返回
如果主序列包含子序列的所有元素则返回true,否则返回false

在文件 search.hpp189 行定义.

引用了 _MSTL , 以及 includes().

◆ includes() [2/2]

template<typename Iterator1, typename Iterator2, typename Compare, enable_if_t< is_ranges_input_iter_v< Iterator1 > &&is_ranges_input_iter_v< Iterator2 >, int > = 0>
bool includes ( Iterator1 first1,
Iterator1 last1,
Iterator2 first2,
Iterator2 last2,
Compare comp )
constexpr

检查一个有序范围是否包含另一个有序范围的所有元素

模板参数
Iterator1主序列迭代器类型,需要满足输入迭代器要求
Iterator2子序列迭代器类型,需要满足输入迭代器要求
Compare比较函数类型
参数
first1主序列起始迭代器
last1主序列终止迭代器
first2子序列起始迭代器
last2子序列终止迭代器
comp比较函数
返回
如果主序列包含子序列的所有元素则返回true,否则返回false

在文件 search.hpp168 行定义.

被这些函数引用 includes().

◆ lower_bound() [1/2]

template<typename Iterator, typename T>
Iterator lower_bound ( Iterator first,
Iterator last,
const T & value )
constexpr

lower_bound的默认比较版本

模板参数
Iterator迭代器类型
T查找值的类型
参数
first范围的起始迭代器
last范围的终止迭代器
value要查找的值
返回
指向第一个不小于value的元素的迭代器,或last如果未找到

使用默认的less比较器执行lower_bound查找。

在文件 search.hpp68 行定义.

引用了 _MSTL , 以及 lower_bound().

◆ lower_bound() [2/2]

template<typename Iterator, typename T, typename Compare, enable_if_t< is_ranges_fwd_iter_v< Iterator >, int > = 0>
Iterator lower_bound ( Iterator first,
Iterator last,
const T & value,
Compare comp )
constexpr

查找有序范围中第一个不小于指定值的元素位置

模板参数
Iterator迭代器类型,需要满足前向迭代器要求
T查找值的类型
Compare比较函数对象类型
参数
first范围的起始迭代器
last范围的终止迭代器
value要查找的值
comp比较函数对象
返回
指向第一个不小于value的元素的迭代器,或last如果未找到

在有序范围[first, last)中执行二分查找,返回第一个满足!comp(*it, value)的 元素位置。要求范围已按照comp排序。

在文件 search.hpp37 行定义.

引用了 _MSTL, advance() , 以及 distance().

被这些函数引用 binary_search(), binary_search(), equal_range() , 以及 lower_bound().

◆ upper_bound() [1/2]

template<typename Iterator, typename T>
Iterator upper_bound ( Iterator first,
Iterator last,
const T & value )
constexpr

upper_bound的默认比较版本

模板参数
Iterator迭代器类型
T查找值的类型
参数
first范围的起始迭代器
last范围的终止迭代器
value要查找的值
返回
指向第一个大于value的元素的迭代器,或last如果未找到

使用默认的greater比较器执行upper_bound查找。

在文件 search.hpp118 行定义.

引用了 _MSTL , 以及 upper_bound().

◆ upper_bound() [2/2]

template<typename Iterator, typename T, typename Compare, enable_if_t< is_ranges_fwd_iter_v< Iterator >, int > = 0>
Iterator upper_bound ( Iterator first,
Iterator last,
const T & value,
Compare comp )
constexpr

查找有序范围中第一个大于指定值的元素位置

模板参数
Iterator迭代器类型,需要满足前向迭代器要求
T查找值的类型
Compare比较函数对象类型
参数
first范围的起始迭代器
last范围的终止迭代器
value要查找的值
comp比较函数对象
返回
指向第一个大于value的元素的迭代器,或last如果未找到

在有序范围[first, last)中执行二分查找,返回第一个满足comp(value, *it)的 元素位置。要求范围已按照comp排序。

在文件 search.hpp87 行定义.

引用了 _MSTL, advance() , 以及 distance().

被这些函数引用 equal_range() , 以及 upper_bound().