📄 yuqueue.h
字号:
// File :YuQueue.h
// Describe :a simple queue template
// Author :exdata
// Ver :1.02
// Update :2004.06.19
// ============================== WARNING ==============================
//
// DO NOT EDIT THIS FILE!!!
//
// =====================================================================
#ifndef __YUQUEUE_H__
#define __YUQUEUE_H__
#if !defined(__cplusplus)
#error C++ compiler required.
#endif
#include <stddef.h> // for typedef only
template <class MyType> class CYuQueue
{
public:
CYuQueue(int MaxSize) : m_pItem(NULL)
{
if(MaxSize != 0)
{
m_pItem = new MyType[MaxSize];
if(m_pItem == NULL)
{
// debug STOP !!!
// NOT enough memory for allocat !!!
while(1);
}
}
m_MaxSize = MaxSize;
m_front = -1;
m_back = -1;
m_count = 0;
}
virtual ~CYuQueue()
{
delete []m_pItem;
}
bool push_back(MyType &Item)
{
if(m_MaxSize == 0 || m_front == ((m_back + 1) % m_MaxSize)) // a%b,if b == 0,div 0 error!
{
return false;
}
m_back = (m_back + 1) % m_MaxSize;
*(m_pItem + m_back) = Item;
m_count++;
return true;
}
bool pop_front(MyType &Item)
{
if(m_front == m_back)
{
return false;
}
m_front = (m_front + 1) % m_MaxSize;
Item = *(m_pItem + m_front);
m_count--;
return true;
}
int get_count()
{
return m_count;
}
int get_MaxSize()
{
return m_MaxSize;
}
void flush()
{
m_front = -1;
m_back = -1;
m_count = 0;
}
private:
MyType *m_pItem;
int m_MaxSize;
int m_front;
int m_back;
int m_count;
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -