Struct insertion_sort


#include <src/entt/core/algorithm.hpp>

struct insertion_sort


Function object for performing insertion sort.


operator()Sorts the elements in a range.


Lines 46-73 in src/entt/core/algorithm.hpp.

struct insertion_sort {
     * @brief Sorts the elements in a range.
     * Sorts the elements in a range using the given binary comparison function.
     * @tparam It Type of random access iterator.
     * @tparam Compare Type of comparison function object.
     * @param first An iterator to the first element of the range to sort.
     * @param last An iterator past the last element of the range to sort.
     * @param compare A valid comparison function object.
    template<typename It, typename Compare = std::less<>>
    void operator()(It first, It last, Compare compare = Compare{}) const {
        if(first < last) {
            for(auto it = first+1; it < last; ++it) {
                auto value = std::move(*it);
                auto pre = it;

                for(; pre > first && compare(value, *(pre-1)); --pre) {
                    *pre = std::move(*(pre-1));

                *pre = std::move(value);

Add Discussion

Log in to comment