📄 buffer1.h
字号:
/*
以下是使用环状数组实现的队列来实现的缓冲区类
成员变量:
Elem * buf; //存放元素的数组
front, rear:队列的头尾指针
n:当前元素数目
成员函数:
Buffer1():构造函数
~Buffer1():析构函数
isEmpty():判断缓冲区是否为空
isFull():判断缓冲区是否为满
insert():向缓冲区内插入元素
read():缓冲区弹出一个元素
flush():将缓冲区内的内容放入文件中并将缓冲区的状态置回空
*/
template <class Elem> class Buffer1
{
public:
Elem * buf;
int front, rear;
int n;
public:
Buffer1()
{
buf = new Elem [MEMORY3];
front = 0;
rear = 0;
n = 0;
}
~Buffer1()
{
delete []buf;
}
bool isEmpty(){return (!n);}
bool isFull()
{
return(n==MEMORY3);
}
bool insert(Elem x)
{
if(isFull()==false)
{
buf[rear] = x;
rear = (rear+1)%MEMORY3;
n++;
return true;
}
else{
return false;
}
}
bool read(Elem & x)
{
if(isEmpty()==false)
{
x = buf[front];
front = (front+1)%MEMORY3;
n--;
return true;
}
else
return false;
}
void flush(ofstream outFile)
{
int temp = front;
for(int i = 0; i < n; i++)
{
outFile<<buf[temp % MEMORY3].content;
temp++;
}
//清零
n = 0;
front = 0;
rear = 0;
}
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -