[VC] 队列类

MFC 里有CList类具有链表,队列功能,通过封装可做成FIFO,FILO队列.

在多线程中应用可结合互斥锁使用.

例子:

=========FIFO (First In First Out)===============

CList<CString> g_mList;

void Queue_FIFO_Push(CString strIn)
{
    g_mList.AddTail( strIn ); //从尾部插入数据FIFO
}

BOOL Queue_FIFO_Pop(CString &strOut)
{
    POSITION posi; 
    BOOL ret = FALSE;
      posi = g_mList.GetTailPosition();
      if (posi !=NULL)
      {
          ret = TRUE;          
          strOut=g_mList.GetAt(posi);
          g_mList.RemoveTail();//删除最后的数据
      }
    return ret;
}



=========FILO (First In Last Out)===============

CList<CString> g_mList;

void Queue_FILO_Push(CString strIn)
{
   g_mList.AddHead( strIn ); //从头部插入数据FILO
}

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.RemoveHead();//删除最前的数据
      }
    return ret;
}

上一篇:opencv-python 视频抽帧成一张张图片


下一篇:python3开发进阶-Django框架中的ORM的常用操作的补充(F查询和Q查询,事务)