|
MSTL 1.4.0
A Modern C++ Library with extended functionality, web components, and utility libraries
|
MSTL查找和搜索算法 更多...
函数 | |
| 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的默认比较版本 | |
| template<typename Iterator, typename Predicate, enable_if_t< is_ranges_input_iter_v< Iterator >, int > = 0> | |
| constexpr bool | all_of (Iterator first, Iterator last, Predicate pred) |
| 检查所有元素是否都满足谓词 | |
| template<typename Iterator, typename Predicate, enable_if_t< is_ranges_input_iter_v< Iterator >, int > = 0> | |
| constexpr bool | any_of (Iterator first, Iterator last, Predicate pred) |
| 检查是否有任意元素满足谓词 | |
| template<typename Iterator, typename Predicate, enable_if_t< is_ranges_input_iter_v< Iterator >, int > = 0> | |
| constexpr bool | none_of (Iterator first, Iterator last, Predicate pred) |
| 检查是否没有元素满足谓词 | |
| template<typename Iterator, typename BinaryPredicate, enable_if_t< is_ranges_fwd_iter_v< Iterator >, int > = 0> | |
| constexpr Iterator | adjacent_find (Iterator first, Iterator last, BinaryPredicate binary_pred) |
| 查找第一对满足条件的相邻元素 | |
| template<typename Iterator, enable_if_t< is_ranges_input_iter_v< Iterator >, int > = 0> | |
| constexpr Iterator | adjacent_find (Iterator first, Iterator last) |
| adjacent_find的默认比较版本 | |
| template<typename Iterator, typename T, typename BinaryPredicate, enable_if_t< is_ranges_input_iter_v< Iterator >, int > = 0> | |
| constexpr iter_difference_t< Iterator > | count_if (Iterator first, Iterator last, const T &value, BinaryPredicate pred) |
| 统计范围内满足二元谓词的元素数量 | |
| template<typename Iterator, typename Predicate, enable_if_t< is_ranges_input_iter_v< Iterator >, int > = 0> | |
| constexpr iter_difference_t< Iterator > | count_if (Iterator first, Iterator last, Predicate pred) |
| 统计范围内满足谓词的元素数量 | |
| template<typename Iterator, typename T> | |
| constexpr iter_difference_t< Iterator > | count (Iterator first, Iterator last, const T &value) |
| 统计范围内等于指定值的元素数量 | |
| template<typename Iterator, typename T> | |
| MSTL_NODISCARD constexpr Iterator | find (Iterator first, Iterator last, const T &value) |
| 查找范围内第一个等于指定值的元素 | |
| template<typename Iterator, typename Predicate, enable_if_t< is_ranges_input_iter_v< Iterator >, int > = 0> | |
| constexpr Iterator | find_if (Iterator first, Iterator last, Predicate pred) |
| 查找范围内第一个满足谓词的元素 | |
| template<typename Iterator, typename Predicate, enable_if_t< is_ranges_input_iter_v< Iterator >, int > = 0> | |
| constexpr Iterator | find_if_not (Iterator first, Iterator last, Predicate pred) |
| 查找范围内第一个不满足谓词的元素 | |
| template<typename Iterator1, typename Iterator2, typename BinaryPredicate, enable_if_t< is_ranges_fwd_iter_v< Iterator1 > &&is_ranges_fwd_iter_v< Iterator2 >, int > = 0> | |
| constexpr Iterator1 | search (Iterator1 first1, Iterator1 last1, Iterator2 first2, Iterator2 last2, BinaryPredicate binary_pred) |
| 在范围内查找子序列的第一次出现 | |
| template<typename Iterator1, typename Iterator2> | |
| constexpr Iterator1 | search (Iterator1 first1, Iterator1 last1, Iterator2 first2, Iterator2 last2) |
| search的默认比较版本 | |
| template<typename Iterator, typename T, enable_if_t< is_ranges_fwd_iter_v< Iterator >, int > = 0> | |
| constexpr Iterator | search_n (Iterator first, Iterator last, const size_t count, const T &value) |
| 查找范围内连续n个等于指定值的子序列 | |
| template<typename Iterator, typename T, typename BinaryPredicate, enable_if_t< is_ranges_fwd_iter_v< Iterator >, int > = 0> | |
| constexpr Iterator | search_n (Iterator first, Iterator last, const size_t count, const T &value, BinaryPredicate binary_pred) |
| search_n的谓词版本 | |
| template<typename Iterator1, typename Iterator2, enable_if_t< is_ranges_fwd_iter_v< Iterator1 > &&is_ranges_fwd_iter_v< Iterator2 >, int > = 0> | |
| constexpr Iterator1 | find_end (Iterator1 first1, Iterator1 last1, Iterator2 first2, Iterator2 last2) |
| 在范围内查找子序列的最后一次出现 | |
| template<typename Iterator1, typename Iterator2, typename BinaryPredicate, enable_if_t< is_ranges_input_iter_v< Iterator1 > &&is_ranges_input_iter_v< Iterator2 >, int > = 0> | |
| constexpr Iterator1 | find_first_of (Iterator1 first1, Iterator1 last1, Iterator2 first2, Iterator2 last2, BinaryPredicate comp) |
| 查找范围内第一个出现在指定集合中的元素 | |
| template<typename Iterator1, typename Iterator2> | |
| constexpr Iterator1 | find_first_of (Iterator1 first1, Iterator1 last1, Iterator2 first2, Iterator2 last2) |
| find_first_of的默认比较版本 | |