4#ifndef TETL_ALGORITHM_EQUAL_RANGE_HPP
5#define TETL_ALGORITHM_EQUAL_RANGE_HPP
7#include <etl/_algorithm/lower_bound.hpp>
8#include <etl/_algorithm/upper_bound.hpp>
9#include <etl/_functional/less.hpp>
10#include <etl/_utility/pair.hpp>
20template <
typename ForwardIt,
typename T,
typename Compare>
21[[nodiscard]]
constexpr auto equal_range(ForwardIt first, ForwardIt last, T
const& value, Compare comp)
22 ->
pair<ForwardIt, ForwardIt>
24 return etl::make_pair(
etl::lower_bound(first, last, value, comp),
etl::upper_bound(first, last, value, comp));
28template <
typename ForwardIt,
typename T>
29[[nodiscard]]
constexpr auto equal_range(ForwardIt first, ForwardIt last, T
const& value) ->
pair<ForwardIt, ForwardIt>
31 return etl::equal_range(first, last, value,
etl::
less());
constexpr auto equal_range(ForwardIt first, ForwardIt last, T const &value, Compare comp) -> pair< ForwardIt, ForwardIt >
Returns a range containing all elements equivalent to value in the range [first, last).
Definition equal_range.hpp:21
constexpr auto equal_range(ForwardIt first, ForwardIt last, T const &value) -> pair< ForwardIt, ForwardIt >
Definition equal_range.hpp:29
Definition adjacent_find.hpp:9
Function object for performing comparisons. Unless specialised, invokes operator< on type T....
Definition less.hpp:15
etl::pair is a class template that provides a way to store two heterogeneous objects as a single unit...
Definition pair.hpp:37