#include #include template > void selection_sort(ForwardIt first, ForwardIt last, Compare comp = Compare()) { for (auto fit = first; fit != last; ++fit) { auto min_it = fit; for (auto sit = std::next(fit); sit != last; ++sit) { if (comp(*sit, *min_it)) { min_it = sit; } } std::swap(*fit, *min_it); } return; }