8 template <
typename ForwardIterator>
9 ForwardIterator
stable_unique(ForwardIterator begin, ForwardIterator end)
11 using value_t =
typename std::iterator_traits<ForwardIterator>::value_type;
13 std::set<value_t> unique_set;
15 auto current_head = begin;
16 for (
auto current_check = begin; current_check != end; current_check++)
18 if (unique_set.find(*current_check) == unique_set.end())
20 unique_set.insert(*current_check);
21 *current_head = *current_check;
ForwardIterator stable_unique(ForwardIterator begin, ForwardIterator end)