|
struct | sort_transform_impl |
| Sort data after applying an arbitrary transformation to it. The primary template handles the general case of arbitrary transformation and arbitrary compare predicate. More...
|
|
struct | sort_transform_impl< RandomAccessIt, UnaryOperation, BinaryPredicate, SortKey, small_size, true, false, false, false > |
| Sort implementation for pointer to member object of non-fundamental type, so sort keys are constant time to extract (this is most similar to a general sort()) More...
|
|
struct | sort_transform_impl< RandomAccessIt, UnaryOperation, std::greater< LessT >, SortKey, small_size, M, false, true, false > |
| Sort implementation for key of radix sortable type type with reverse sorting. More...
|
|
struct | sort_transform_impl< RandomAccessIt, UnaryOperation, std::greater< LessT >, SortKey, small_size, true, true, false, false > |
| Sort implementation for pointer to member object of fundamental non-integral type with reverse sorting, so sort keys are constant time to extract and compare. More...
|
|
struct | sort_transform_impl< RandomAccessIt, UnaryOperation, std::greater< LessT >, SortKey, small_size, true, true, true, true > |
| Sort implementation for pointer to member object of integral type with reverse sorting, so we can do radix sort. More...
|
|
struct | sort_transform_impl< RandomAccessIt, UnaryOperation, std::less< LessT >, SortKey, small_size, M, false, true, false > |
| Sort implementation for key of radix sortable type type with default sorting. More...
|
|
struct | sort_transform_impl< RandomAccessIt, UnaryOperation, std::less< LessT >, SortKey, small_size, true, true, false, false > |
| Sort implementation for pointer to member object of fundamental non-integral type with default sorting, so sort keys are constant time to extract and compare. More...
|
|
struct | sort_transform_impl< RandomAccessIt, UnaryOperation, std::less< LessT >, SortKey, small_size, true, true, true, true > |
| Sort implementation for pointer to member object of integral type with default sorting, so we can do radix sort. More...
|
|
|
template<typename RandomAccessIt , typename Compare > |
constexpr auto | sort (RandomAccessIt, const RandomAccessIt, Compare) -> void |
|
template<typename RandomAccessIt , typename Compare > |
constexpr auto | stable_sort (RandomAccessIt, const RandomAccessIt, Compare) -> void |
|
template<typename RandomAccessIt , typename Compare , std::size_t small_size> |
constexpr auto | merge_sort (RandomAccessIt begin, const RandomAccessIt end, Compare cmp) -> void |
|
template<typename RandomAccessIt , typename Compare , std::size_t small_size> |
constexpr auto | heap_sort (RandomAccessIt begin, const RandomAccessIt end, Compare cmp) -> void |
|
template<sort_direction dir, typename RandomAccessIt , typename Projection > |
constexpr auto | radix_sort_i (RandomAccessIt begin, const RandomAccessIt end, Projection proj) -> void |
|
template<sort_direction dir, typename RandomAccessIt , typename Projection > |
constexpr auto | radix_sort_s (RandomAccessIt begin, const RandomAccessIt end, Projection proj) -> void |
|
template<std::size_t size> |
constexpr auto | make_array_for (std::false_type) -> kblib::containing_ptr< std::array< std::size_t, size > > |
|
template<std::size_t size> |
auto | make_array_for (std::true_type) -> kblib::heap_value< std::array< std::size_t, size+1 > > |
|
template<sort_direction dir, typename RandomAccessIt1 , typename RandomAccessIt2 , typename Projection > |
constexpr auto | counting_sort (RandomAccessIt1 begin, const RandomAccessIt1 end, RandomAccessIt2 d_begin, Projection proj) -> void |
|