20#ifndef RIPPLE_ALGORITHM_H_INCLUDED
21#define RIPPLE_ALGORITHM_H_INCLUDED
35template <
class InputIter1,
class InputIter2,
class Action,
class Comp>
45 while (first1 != last1 && first2 != last2)
47 if (comp(*first1, *first2))
51 if (!comp(*first2, *first1))
53 action(*first1, *first2);
73template <
class FwdIter1,
class InputIter2,
class Pred,
class Comp>
88 for (
auto i = first1; i != last1;)
91 if (first2 == last2 || comp(*i, *first2))
97 *first1 = std::move(*i);
107 if (!comp(*first2, *i))
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
void generalized_set_intersection(InputIter1 first1, InputIter1 last1, InputIter2 first2, InputIter2 last2, Action action, Comp comp)
FwdIter1 remove_if_intersect_or_match(FwdIter1 first1, FwdIter1 last1, InputIter2 first2, InputIter2 last2, Pred pred, Comp comp)