MFC 里有CList类具有链表,队列功能,通过封装可做成FIFO,FILO队列.
在多线程中应用可结合互斥锁使用.
例子:
=========FIFO (First In First Out)===============
CList<CString> g_mList;
void Queue_FIFO_Push(CString strIn)
{
g_mList.AddTail( strIn ); //从尾部插入数据
}
BOOL Queue_FIFO_Pop(CString &strOut)
{
POSITION posi;
BOOL ret = FALSE;
posi = g_mList.GetHeadPosition();
if (posi !=NULL)
{
ret = TRUE;
strOut=g_mList.GetAt(posi);
g_mList.RemoveAt(posi);
}
return ret;
}
=========FILO (First In Last Out)===============
CList<CString> g_mList;
void Queue_FILO_Push(CString strIn)
{
g_mList.AddHead( strIn ); //从头部插入数据
}
BOOL Queue_FILO_Pop(CString &strOut)
{
POSITION posi;
BOOL ret = FALSE;
posi = g_mList.GetHeadPosition();
if (posi !=NULL)
{
ret = TRUE;
strOut=g_mList.GetAt(posi);
g_mList.RemoveAt(posi);
}
return ret;
}
这篇博客介绍了如何在C++的MFC环境中利用CList类创建FIFO(先进先出)和FILO(先进后出)队列,并展示了如何通过AddTail和AddHead函数分别实现数据的插入,以及使用GetHeadPosition和RemoveAt函数进行数据的取出。在多线程环境下,这些操作可以结合互斥锁来确保线程安全。
335

被折叠的 条评论
为什么被折叠?



