📄 class_partner.h
字号:
template<class T>
class Partner{
private:
int front,rear;
T *element;
public:
int DancerNum;
Partner();
void AllocateRoom(int &size);
void Dancer();
void Wait();
T Match();
void MakeNew(int &min);
void Clear();
int GetFront()const;
T* GetElement()const;
};
//构造函数
template<class T>
Partner<T>::Partner()
{
element=new T;
front=0;
rear=-1;
DancerNum=0;
}
//重新分配空间
template<class T>
void Partner<T>::AllocateRoom(int &size)
{
element=(T *)realloc(element,size);
}
//读入跳舞人数
template<class T>
void Partner<T>::Dancer()
{
cin>>DancerNum;
//cout<<"重新分配";
AllocateRoom(DancerNum);
for(int i=1;i<=DancerNum;i++){
*(element+rear+1)=i;
rear=(rear+1)%DancerNum;
}
}
//入队,即等待
template<class T>
void Partner<T>::Wait()
{
rear=(rear+1)%DancerNum;
}
//出队,即配对
template<class T>
T Partner<T>::Match()
{
T x=*(element+front);
front=(front+1)%DancerNum;
return(x);
}
//下一轮
template<class T>
void Partner<T>::MakeNew(int &min)
{
for(int i=1;i<=min;i++){
front=(front+1)%DancerNum;
rear=(rear+1)%DancerNum;
}
}
//清空
template<class T>
void Partner<T>::Clear()
{int size=1;
front=0;
rear=-1;
DancerNum=0;
AllocateRoom(size);
}
//取队头
template<class T>
int Partner<T>::GetFront()const
{
return(front);
}
//取首地址
template<class T>
T* Partner<T>::GetElement()const
{
return(element);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -