キューを実現するクラスです。
テンプレートクラスとしているのでキューとして格納できる変数の型はintだろうとCString*だろうと何でも可能。
テンプレートクラスとしているのでキューとして格納できる変数の型はintだろうとCString*だろうと何でも可能。
CQue<int> queIntData;
CString strData;
CString strBuff;
int n;
queIntData.AddData(1);
queIntData.AddData(2);
queIntData.AddData(3);
queIntData.AddData(4);
while(1)
{
if(queIntData.GetData(n) == false);
break;
strBuff.Format(" -> %d",n);
strData += strBuff;
}
AfxMessageBox(strData);
#include "afxtempl.h"
template<class VALUE>
class CQue
{
public:
CQue() {};
virtual ~CQue() {};
CList<VALUE,VALUE> m_lData;
//Queにデータ追加
void AddData(VALUE data)
{
m_lData.AddTail(data);
};
//Queの先頭にデータ追加
void AddPrimeData(VALUE data)
{
m_lData.AddHead(data);
};
bool GetData(VALUE& data)
{
if(m_lData.GetCount() > 0)
data = m_lData.RemoveHead();
else
{
data = NULL;
return false;
}
return true;
};
VALUE GetData(void)
{
VALUE ret;
GetData(ret);
return ret;
};
int GetSize(void)
{
return m_lData.GetCount();
};
bool RemoveAll(void)
{
m_lData.RemoveAll();
};
};







