计数排序的C++代码实现
计数排序,并非基数排序。暂时只支持数值型 编译环境:C++11 代码实现如下: #include <cstring> // std::memset #include <type_traits> // std::declval /* 计数排序 * [@beg, @end) 待排序的范围,同时保存结果,须支持前向迭代 * [@min, @max) 待排序范围的最小值和最大值,不包含最大值 */ template<typename _ForwardIter> void csort(_ForwardIter beg, _ForwardIter end, typename std::remove_reference<decltype(*std::declval<_ForwardIter>())>::type min, typename std::remove_reference<decltype(*std::declval<_ForwardIter>())>::type max) { using __element_type = typename std::remove_reference<decltype(*std::declval<_ForwardIter>())>::type; static_assert(std::is_arithmetic<__element_type>: