20#ifndef RIPPLE_ALGORITHM_H_INCLUDED
21#define RIPPLE_ALGORITHM_H_INCLUDED
34template <
class InputIter1,
class InputIter2,
class Action,
class Comp>
44 while (first1 != last1 && first2 != last2)
46 if (comp(*first1, *first2))
50 if (!comp(*first2, *first1))
52 action(*first1, *first2);
72template <
class FwdIter1,
class InputIter2,
class Pred,
class Comp>
87 for (
auto i = first1; i != last1;)
90 if (first2 == last2 || comp(*i, *first2))
96 *first1 = std::move(*i);
106 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)