📄 queue.cpp
字号:
// Queue.cpp: implementation of the CQueue class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "Queue.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
/********************************************************************************************************************************\
入队
[in]iData
入队元素
return:
入队是否成功,如果失败则说明队已满
\********************************************************************************************************************************/
BOOL CQueue::In(int iData)
{
//先进入临界区
m_sCS.Lock();
//返回值
BOOL bRet = FALSE;
if(!IsFull())
{//当队未满时才入队
m_piQueue[m_nTail] = iData; //一、写入当前位置
m_nTail++; //二、队尾增1
m_nTail %= m_nQueueLength; //三、求模
bRet = TRUE;
}
//退出函数时退出临界区
m_sCS.UnLock();
return bRet;
}
/********************************************************************************************************************************\
出队
[out]piData
出队的内容存入位置
return:
出队是否成功,如果失败则说明队为空
\********************************************************************************************************************************/
BOOL CQueue::Out(int *piData)
{
//先进入临界区
m_sCS.Lock();
//返回值
BOOL bRet = FALSE;
if(!IsEmpty())
{//当队有内容时才出队
*piData = m_piQueue[m_nHead]; //一、取出当前元素的内容
m_nHead++; //二、队头增1
m_nHead %= m_nQueueLength; //三、求模
bRet = TRUE;
}
//退出函数时退出临界区
m_sCS.UnLock();
return bRet;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -