#include<iostream>
#include<vector>
int MaxValue(std::vector<int>b);
void BarrelSort(int c[], std::vector<int>b)
{
int max = MaxValue(b);
int* a=new int [max+1];
for (int i = 0; i < max+1; i++)
{
a[i] = 0;
}
for (std::vector<int>::iterator i = b.begin(); i !=b.end(); i++)
{
++a[*i];
}
//for (int i = 0; i < max+1; i++)
//{
// std::cout << a[i] << std::endl;
//}
int k = 0;
for ( int i = 0; i < b.size(); )
{
if (a[k] > 0)
{
for (unsigned int j = 0; j < a[k]; j++, i++)
{
c[i] = k;
}
}
k++;
}
//delete[]a;
}
int MaxValue(std::vector<int>b)
{
int max = b[0];
for (std::vector<int>::iterator i = b.begin(); i < b.end(); i++)
{
max > *i ? max:max = *i;
}
return max;
}
int main()
{
int *t = new int[];
std::vector<int>c = { 9,2,3,7,6,4,8,9,2,3,4, };
BarrelSort(t, c);
for (unsigned int i = 0; i <c.size() ; i++)
{
std::cout << t[i] << std:: endl;
}
//delete[]t;
int s;
std::cin >> s;
}
很奇怪,释放内存的时候会报错。。。