CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

看看我错在哪了,急呀!(在线,立刻给分)

楼主SeaFish(咸鱼)2002-04-12 16:52:31 在 VC/MFC / 基础类 提问

#ifndef   MTDEQUE_H  
  #define   MTDEQUE_H  
   
  #include   <deque>  
  #include   <windows.h>  
  class   MTdeque  
  {  
  protected:  
  const     m_iMaxSize;  
  deque<char>   m_Queue;                   \\*********出错**********  
  CRITICAL_SECTION   m_Lock;  
   
  public:  
  MTdeque(int   max_szie):m_iMaxSize(max_size)  
  {  
  ::InitializeCriticalSection(&m_Lock);  
  }  
   
  ~MTdeque()  
  {  
  ::DeleteCriticalSection(&m_Lock);  
  }  
   
  int   SpaceFree()  
  {  
  ::EnterCriticalSection(&m_Lock);  
  int   size=m_iMaxSize-m_Queue.size();  
  ::LeaveCriticalSection(&m_Lock);  
  return(size<0)?0:size;  
  }  
   
  int   SpaceUsed()  
  {  
  ::EnterCriticalSection(&m_Lock);  
  int   size=m_Queue.size();  
  ::LeaveCriticalSection(&m_Lock);  
  return   size;  
          }  
   
  int   Insert(char   c)  
  {  
  int   return_value;  
  ::EnterCriticalSection(&m_Lock);  
  if(m_Queue.size()<m_iMaxSize)  
  {  
  m_Queue.push_back(c);  
  return_vlaue=c   &   0xff;  
  }  
  else  
  return_value=-1;  
  ::LeaveCriticalSection(&m_Lock);  
                  return   return_value;  
  }  
   
  int   Insert(char   *data,int   count)  
  {  
  ::EnterCriticalSection(&m_Lock);  
  int   actual=m_iMaxSize-m_Queue.size();  
  if(actual<0)  
  actual=0;  
  if(count<actual)  
  actual=count;  
  for(int   i=0;i<actual;i++)  
  m_Queue.push_bakc(*data++);  
  ::LeaveCriticalSection(&m_Lock);  
  return   actual;  
  }  
   
  int   Extract(char   *data,int   max)  
  {  
  int   i=0;  
            ::EnterCriticalSection(&m_Lock);  
          while(i<max   &&   m_Queue.size())  
  {  
  data[i++]=m_Queue.front();  
  m_Queue.pop_front();  
  }  
  ::LeaveCriticalSection(&m_Lock);  
  return   i;  
  }  
  int   Peek(char   *data,int   max)  
  {  
  ::EnterCriticalSection(&m_Lock);  
  if(max>m_Queue.size())  
  max=m_Queue.size();  
  for(int   i=0;i<max;i++)  
  data[i]=m_Queue.begin()[i];  
  ::LeaveCriticalSection(&m_Lock);  
  return   i;  
  }  
  int   Extract()  
  {  
  int   ret_val=-1;  
          ::EnterCriticalSection(&m_Lock);    
  if(m_Queue.size())  
  {  
  ret_val=m_Queue.front()   &   0xff;  
  m_Queue.pop_front();  
  }  
  ::LeaveCriticalSection(&m_Lock);  
  return   ret_val;  
  }  
   
  void   Clear()  
  {  
          ::EnterCriticalSection(&m_Lock);    
  m_Queue.clear();  
  ::LeaveCriticalSection(&m_Lock);  
  }  
  };  
  #endif  
   
   
  e:\项目1-modem类-用tcommport类写0408\mtdeque\mtdeque.h(7)   :   error   C2143:   syntax   error   :   missing   ';'   before   '<'  
  e:\项目1-modem类-用tcommport类写0408\mtdeque\mtdeque.h(7)   :   error   C2501:   'deque'   :   missing   storage-class   or   type   specifiers  
  e:\项目1-modem类-用tcommport类写0408\mtdeque\mtdeque.h(7)   :   error   C2059:   syntax   error   :   '<'  
  e:\项目1-modem类-用tcommport类写0408\mtdeque\mtdeque.h(7)   :   error   C2238:   unexpected   token(s)   preceding   ';'  
   
  问题点数:50、回复次数:6Top

1 楼rushing(勇敢的心)回复于 2002-04-12 16:56:58 得分 0

deque<char>   m_Queue;  
   
  不能用   <   >Top

2 楼zxs218(Frank Zhou)回复于 2002-04-12 16:56:58 得分 50

使用它了吗?  
   
  using   namespace   std;Top

3 楼rushing(勇敢的心)回复于 2002-04-12 16:57:37 得分 0

#include   <deque.h>  
  Top

4 楼zxs218(Frank Zhou)回复于 2002-04-12 16:58:13 得分 0

例子:  
   
  //////////////////////////////////////////////////////////////////////  
  //  
  //   Compile   options   needed:   -GX  
  //  
  //   deque.cpp   :  
  //  
  //   Functions:  
  //  
  //         assign  
  //         swap  
  //         begin  
  //         end  
  //////////////////////////////////////////////////////////////////////  
   
  /*   Compile   options   needed:-GX  
  */  
  #include   <iostream>  
  #include   <deque>  
   
  using   namespace   std;  
   
   
  typedef   deque<char   >     CHARDEQUE;  
  void   print_contents   (CHARDEQUE     deque,   char*);  
   
  void   main()  
  {  
          //create   a     with     3   A's  
          CHARDEQUE     a(3,'A');  
   
          //create   b   with   4   B's.  
          CHARDEQUE     b(4,'B');  
   
          //print   out   the   contents  
          print_contents   (a,"a");  
          print_contents   (b,"b");  
   
          //swap   a   and   b  
          a.swap(b);  
          print_contents   (a,"a");  
          print_contents   (b,"b");  
   
          //   let   us   swap   it   back  
                  a.swap(b);  
          print_contents   (a,"a");  
          print_contents   (b,"b");  
   
          //assign   the   contents   of   b   to   a  
          a.assign(b.begin(),b.end());  
          print_contents   (a,"a");  
   
          //assign   the   first   two   items   of   b   to   a  
          a.assign(b.begin(),b.begin()+2);  
          print_contents   (a,"a");  
   
          //assign   3   'Z's   to   a  
          a.assign(3,'Z');  
          print_contents   (a,"a");  
   
          }  
   
  //function   to   print   the   contents   of   deque  
  void   print_contents   (CHARDEQUE     deque,   char   *name)  
  {  
          CHARDEQUE::iterator   pdeque;  
   
          cout   <<"The   contents   of   "<<   name   <<"   :   ";  
   
                  for(pdeque   =   deque.begin();  
                  pdeque   !=   deque.end();  
                  pdeque++)  
          {  
                  cout   <<   *pdeque   <<"   "   ;  
          }  
                  cout<<endl;  
  }  
  Top

5 楼SeaFish(咸鱼)回复于 2002-04-12 16:59:26 得分 0

to   zxs218(Frank   Zhou)   :  
  没有,怎么用的?  
   
   
  to   rushing:  
  <deque>没错!Top

6 楼fiolin(幽深的水)回复于 2002-04-12 17:00:35 得分 0

少头文件了!!         可能是   #include   "afxtempl.h"Top

7 楼SeaFish(咸鱼)回复于 2002-04-12 17:01:55 得分 0

thanks,对了,给分Top

相关问题

  • 高程的分数线出来了?多少呀???急呀!!!
  • 求急呀,在线等待,分不够再加!!谢谢
  • 动态拆分单元格的问题。。急呀,(在线等)
  • 急呀~oracle问题!再线等,然后散分~
  • 着急呀。----在线等待
  • 急呀!!来都有分
  • 急呀,高分求助
  • 请问Active Reports For .NET怎样注册?急呀!(在线等待,立即给分)
  • 急呀,一百分在线等待,请求各位大虾帮助我!!!
  • xmlhttp返回的东东乱码。急呀。在线等 没分了。帮帮小弟

关键词

  • mtdeque
  • chardeque
  • imaxsize
  • deque
  • assign
  • print
  • swap
  • queue
  • contents
  • lock

得分解答快速导航

  • 帖主:SeaFish
  • zxs218

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo