直接上代码
#include <iostream>
#include <array>
template<typename T>
void InsertSort(T& T_Container)
{
for (auto i(1); i < static_cast<decltype(i)>(T_Container.size()); ++i)
{
if (T_Container[i - 1] > T_Container[i])
{
typename T::value_type tmp_val{T_Container[i]};
auto j(i - 1);
for (; j >= 0 && T_Container[j] > tmp_val; --j)
{
T_Container[j + 1] = T_Container[j];
}
T_Container[j + 1] = tmp_val;
}
}
}
template<typename T>
void Display(T& T_Container)
{
std::cout << "排序前: ";
for(typename T::const_iterator it(T_Container.begin());
it != T_Container.end(); ++it)//这里有点长我就这样写了
{
std::cout << *it << " ";
}
std::cout << std::endl;
InsertSort(T_Container);
std::cout << "排序后: ";
for(typename T::const_iterator it(T_Container.begin());
it != T_Container.end(); ++it)
{
std::cout << *it << " ";
}
std::cout << std::endl;
}
int main(void)
{
std::array<int, 4> array{6, 8, 2, 1};
Display(array);
return 0;
}
代码链接
欢迎指正!!!!!=。=