MSTL 1.4.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
compare.hpp 文件参考

MSTL比较算法 更多...

#include "MSTL/core/memory/memory.hpp"
#include "MSTL/core/utility/pair.hpp"
#include "MSTL/core/algorithm/search.hpp"
#include <initializer_list>
compare.hpp 的引用(Include)关系图:

浏览该文件的源代码.

函数

template<typename Iterator1, typename Iterator2, typename BinaryPredicate, enable_if_t< is_ranges_input_iter_v< Iterator1 > &&is_ranges_input_iter_v< Iterator2 >, int > = 0>
MSTL_NODISCARD constexpr bool equal (Iterator1 first1, Iterator1 last1, Iterator2 first2, BinaryPredicate binary_pred) noexcept(noexcept(++first1) &&noexcept(++first2) &&noexcept(binary_pred(*first1, *first2)))
 比较两个范围是否相等
template<typename Iterator1, typename Iterator2>
MSTL_NODISCARD constexpr bool equal (Iterator1 first1, Iterator1 last1, Iterator2 first2) noexcept(noexcept(_MSTL equal(first1, last1, first2, _MSTL equal_to< iter_value_t< Iterator1 > >())))
 比较两个范围是否相等
template<typename Iterator, typename T, typename Compare, enable_if_t< is_ranges_fwd_iter_v< Iterator >, int > = 0>
constexpr pair< Iterator, Iterator > equal_range (Iterator first, Iterator last, const T &value, Compare comp)
 查找值的相等范围
template<typename Iterator, typename T>
constexpr pair< Iterator, Iterator > equal_range (Iterator first, Iterator last, const T &value)
 查找值的相等范围
template<typename T, typename Compare>
constexpr const T & max (const T &a, const T &b, Compare comp) noexcept(noexcept(comp(a, b)))
 返回两个值中的较大者
template<typename T>
constexpr const T & max (const T &a, const T &b) noexcept(noexcept(a< b))
 返回两个值中的较大者
template<typename T, typename Compare>
constexpr const T & min (const T &a, const T &b, Compare comp) noexcept(noexcept(comp(b, a)))
 返回两个值中的较小者
template<typename T>
constexpr const T & min (const T &a, const T &b) noexcept(noexcept(b< a))
 返回两个值中的较小者
template<typename T, typename Compare>
constexpr const T & median (const T &a, const T &b, const T &c, Compare comp) noexcept(noexcept(comp(a, b)))
 返回三个值的中位数
template<typename T>
constexpr const T & median (const T &a, const T &b, const T &c) noexcept(noexcept(_MSTL median(a, b, c, _MSTL less< T >())))
 返回三个值的中位数
template<typename Iterator, typename Compare, enable_if_t< is_ranges_input_iter_v< Iterator >, int > = 0>
pair< iter_value_t< Iterator >, iter_value_t< Iterator > > constexpr minmax (Iterator first, Iterator last, Compare comp)
 查找范围中的最小值和最大值
template<typename Iterator>
constexpr pair< iter_value_t< Iterator >, iter_value_t< Iterator > > minmax (Iterator first, Iterator last)
 查找范围中的最小值和最大值
template<typename Iterator, typename Compare, enable_if_t< is_ranges_input_iter_v< Iterator >, int > = 0>
constexpr Iterator max_element (Iterator first, Iterator last, Compare comp)
 查找范围中的最大元素
template<typename Iterator>
constexpr Iterator max_element (Iterator first, Iterator last)
 查找范围中的最大元素
template<typename T>
constexpr const T & max (std::initializer_list< T > list)
 返回初始化列表中的最大值
template<typename Iterator, typename Compare, enable_if_t< is_ranges_input_iter_v< Iterator >, int > = 0>
constexpr Iterator min_element (Iterator first, Iterator last, Compare comp)
 查找范围中的最小元素
template<typename Iterator>
constexpr Iterator min_element (Iterator first, Iterator last)
 查找范围中的最小元素
template<typename T>
constexpr const T & min (std::initializer_list< T > list)
 返回初始化列表中的最小值
template<typename Iterator, typename Compare, enable_if_t< is_ranges_input_iter_v< Iterator >, int > = 0>
constexpr pair< Iterator, Iterator > minmax_element (Iterator first, Iterator last, Compare comp)
 同时查找范围中的最小和最大元素
template<typename Iterator>
constexpr pair< Iterator, Iterator > minmax_element (Iterator first, Iterator last)
 同时查找范围中的最小和最大元素
template<typename T, typename Compare>
constexpr const T & clamp (const T &value, const T &lower, const T &upper, Compare comp) noexcept(noexcept(comp(value, lower)))
 将值限制在指定范围内
template<typename T>
constexpr const T & clamp (const T &value, const T &lower, const T &upper) noexcept(noexcept(_MSTL clamp(value, lower, upper, _MSTL less< T >())))
 将值限制在指定范围内
template<typename Iterator1, typename Iterator2, typename Compare, enable_if_t< is_ranges_input_iter_v< Iterator1 > &&is_ranges_input_iter_v< Iterator2 >, int > = 0>
MSTL_NODISCARD constexpr bool lexicographical_compare (Iterator1 first1, Iterator1 last1, Iterator2 first2, Iterator2 last2, Compare comp) noexcept(noexcept(++first1) &&noexcept(++first2) &&noexcept(comp(*first1, *first2)) &&noexcept(first1==last1 &&first2 !=last2))
 字典序比较两个范围
template<typename Iterator1, typename Iterator2, enable_if_t< is_ranges_input_iter_v< Iterator1 > &&is_ranges_input_iter_v< Iterator2 >, int > = 0>
MSTL_NODISCARD constexpr bool lexicographical_compare (Iterator1 first1, Iterator1 last1, Iterator2 first2, Iterator2 last2) noexcept(noexcept(_INNER __lexicographical_compare_aux(first1, last1, first2, last2)))
 字典序比较两个范围
template<typename Iterator1, typename Iterator2, typename Compare, enable_if_t< is_ranges_input_iter_v< Iterator1 > &&is_ranges_input_iter_v< Iterator2 >, int > = 0>
pair< Iterator1, Iterator2 > constexpr mismatch (Iterator1 first1, Iterator1 last1, Iterator2 first2, Compare comp)
 查找两个范围中首个不匹配的元素
template<typename Iterator1, typename Iterator2>
constexpr pair< Iterator1, Iterator2 > mismatch (Iterator1 first1, Iterator1 last1, Iterator2 first2)
 查找两个范围中首个不匹配的元素

详细描述

MSTL比较算法

此文件提供了比较算法实现, 包括相等性比较、范围比较、极值查找、字典序比较等功能。

在文件 compare.hpp 中定义.