📄 lei.h
字号:
#include <iostream.h>
template<class T>
class Note //box[i].element[j]--第i个箱子第j个元素
{
public:
Note(int c=20);
~Note(){delete []element;}
T& Element(int i){return element[i];}
int& Count(){return count;}
protected:
private:
T *element;
int Maxsize,count; //每个箱子里数目的个数——count
};
template<class T>
Note<T>::Note(int c/* =20 */)
{
Maxsize=c;
element=new T [Maxsize];
count=0;
}
template<class T>
class Box //箱子0,1,2,3,4,5,6,7,8,9
{
public:
Box(int n=10){num=n;box=new Note<T>[num];}
~Box(){delete []box;}
void Clear();
void PaiXu(T *a,int n,int how_m,int mod=1);//一次排序 how_m--位数
protected:
private:
Note<T> *box;
int num; //箱子个数---number
};
template<class T>
void Box<T>::Clear() //将箱子清空
{
for (int i=0;i<num;i++)
{
box[i].Count()=0;
}
}
template<class T>
void Box<T>::PaiXu(T *a,int n,int how_m,int mod)
{
if(how_m==0) return;
for (int inc_box=0;inc_box<num;inc_box++)
{
for (int ii=0;ii<n;ii++)
{
if (inc_box==a[ii]%(10*mod)/mod)
{
box[inc_box].Element(box[inc_box].Count())=a[ii];
box[inc_box].Count()++;
}
}
}
int change_i=0;
for (int i=0;i<num;i++)
{
for (int jj=0;jj<box[i].Count();jj++)
{
cout<<(a[change_i]=box[i].Element(jj))<<" ";
change_i++;
if (change_i%10==0)
{
cout<<endl;
}
}
}
cout<<endl<<endl;
mod*=10;
Clear();
how_m--;
PaiXu(a,n,how_m,mod);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -