类模板已经定义,需要模板参数列表?

sjk1996 sjk1996 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
# include<iostream>
using namespace std;
template <class T>
class SeqQueue{
private:
T* elements; //存放队列元素的数组
int rear,front; //队尾指针和对头指针
int maxSize; //队列可容纳的最大元素个数
public:
SeqQueue(int sz):rear(0),front(0),maxSize(sz){
elements=new T[maxSize];
}
~ SeqQueue(){ delete[]elements;} //析构函数
bool EnQueue(const T& x){ //进队函数
if(isFull()) return false;
else
elements[rear]=x;
rear=(rear+1)%maxSize; //加一再取余是为了rear指向队列最后一个元素(下标maxSize-1),再进一下标就到了0
return true;
}
bool DeQueue(T& x){
if(isEmpty()) return false;
else
x=elements[front];
front=(front+1)%maxSize;
return true;
}
bool getFront(T& x){
if(isEmpty()) return false;
else
x=elements[front];
return true;
}
void makeEmpty(){front=rear=0;} //把队置空
bool isEmpty(){ return (front==rear)?true:false; } //判断队空
bool isFull(){ return ((rear+1)%maxSize==front)?true:false; } //判断队满
int getSize(){ return (rear-front+maxSize)%maxSize; } //求队中元素个数
friend ostream& operator<<(ostream& ostr,SeqQueue<T>& Q); //输出运算符重载
};
template<class T>
ostream& operator<<(ostream& ostr,SeqQueue<T>& Q){
ostr<<"front="<<Q.front<<" "<<"rear="<<Q.rear<<endl;
for(int i=Q.front;i!=Q.rear;i=(i+1)%Q.maxSize)
ostr<<i<<": "<<Q.elements[i]<<endl;
return ostr;
}



请帮我解答一下
...全文

相关推荐

评论 4
收藏 已收藏
分享
返回顶部
sjk1996
C++ 语言 65,214 成员 250,514 内容