📄 cqueuevector.h
字号:
#ifndef cqueueVector
#define cqueueVector
#include"cqueue.h"
#include "assert.h"
template<class T>class vector;
template<class T>class queueVector:public queue<T>
{
public:
queueVector(unsigned int size);
queueVector(queueVector & v);
virtual void deleteAllValues();
virtual T dequeue();
virtual void enqueue(T value);
virtual T front();
virtual int isEmpty()const;
protected:
vector<T>data;
unsigned int max;
unsigned int nextSlot;
unsigned int nextUse;
};
template<class T>
queueVector<T>::queueVector(queueVector & v)
{
}
template<class T>
queueVector<T>::queueVector(unsigned int size):max(size),data(size)
{
deleteAllValues();
}
template<class T>
void queueVector<T>::deleteAllValues()
{
nextSlot=0;
nextUse=0;
}
template<class T>
int queueVector<T>::isEmpty()const
{
return nextSlot==nextUse;
}
template<class T>
void queueVector<T>::enqueue(T val)
{
data[nextSlot++]=val;
if(nextSlot>=max)
nextSlot=0;
assert(nextSlot!=nextUse);
}
template<class T>T queueVector<T>::front()
{
assert(!isEmpty());
return data[nextUse];
}
template<class T>T queueVector<T>::dequeue()
{
assert(!isEmpty());
int dataloc=nextUse;
nextUse++;
if(nextUse>=max)
nextUse=0;
return data[dataloc];
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -