|
template<Map M> |
auto | MapGetValuePtr (M &map, typename M::key_type const &key) |
|
template<Map M> |
void | MultimapErasePair (M &multimap, typename M::key_type const &key, typename M::mapped_type const &value) |
|
template<std::ranges::forward_range C> |
void | RandomResize (C &container, std::size_t requestedSize) |
|
template<std::ranges::forward_range C, invocable_r< bool, std::ranges::range_reference_t< C > > Predicate> |
void | RandomResize (C &container, Predicate &&predicate, std::size_t requestedSize) |
|
template<std::ranges::input_range C> |
auto | SelectRandomContainerElement (C const &container) -> std::add_const_t< decltype(*std::ranges::begin(container))> & |
|
template<std::ranges::input_range C> |
auto | SelectRandomWeightedContainerElement (C const &container, std::span< double > const &weights) -> decltype(std::ranges::begin(container)) |
|
template<std::ranges::input_range C, invocable_r< double, std::ranges::range_reference_t< C > > Fn> |
auto | SelectRandomWeightedContainerElement (C const &container, Fn weightExtractor) -> decltype(std::ranges::begin(container)) |
|
template<std::random_access_iterator Iterator> |
void | RandomShuffle (Iterator begin, Iterator end) |
| Reorder the elements of the iterator range randomly. More...
|
|
template<std::ranges::random_access_range C> |
void | RandomShuffle (C &container) |
| Reorder the elements of the container randomly. More...
|
|
template<std::input_iterator Iterator1, std::sentinel_for< Iterator1 > Sentinel1, std::input_iterator Iterator2, std::sentinel_for< Iterator2 > Sentinel2> |
constexpr bool | Intersects (Iterator1 first1, Sentinel1 last1, Iterator2 first2, Sentinel2 last2) |
|
template<std::input_iterator Iterator1, std::sentinel_for< Iterator1 > Sentinel1, std::input_iterator Iterator2, std::sentinel_for< Iterator2 > Sentinel2, invocable_r< bool, std::iter_reference_t< Iterator1 >, std::iter_reference_t< Iterator2 > > Predicate> |
constexpr bool | Intersects (Iterator1 first1, Sentinel1 last1, Iterator2 first2, Sentinel2 last2, Predicate &&equalPred) |
|
template<std::ranges::forward_range Container, invocable_r< bool, std::ranges::range_reference_t< Container > > Predicate>
requires requires { c.erase(c.begin(), c.end()); } |
constexpr void | EraseIf (Container &c, Predicate p) |
|
template<typename T > |
constexpr decltype(auto) | EnsureWritableVectorIndex (std::vector< T > &vec, typename std::vector< T >::size_type i) |
|
template<typename T > |
constexpr decltype(auto) | EnsureWritableVectorIndex (std::vector< T > &vec, typename std::vector< T >::size_type i, T const &resizeDefault) |
|
template<typename Container , typename NeedleContainer , typename ContainsOperator = bool(std::string const&, std::string const&), typename T = void> |
auto | FuzzyFindIn (Container const &container, NeedleContainer const &needles, ContainsOperator const &contains=StringContainsStringI, int(*bonus)(decltype((*std::begin(std::declval< Container >()))))=nullptr) |
|
template<typename iterator , class end_iterator = iterator> |
constexpr IteratorPair< iterator, end_iterator > | MakeIteratorPair (iterator first, end_iterator second) |
|
template<typename iterator , class end_iterator = iterator> |
constexpr IteratorPair< iterator, end_iterator > | MakeIteratorPair (std::pair< iterator, end_iterator > iterators) |
|
template<class M > |
auto | MapEqualRange (M &map, typename M::key_type const &key) |
|