tempad
Readygo技术搜索引擎 >>网络技术 >> CList链表的问题,请各位帮帮忙!

CList链表的问题,请各位帮帮忙!

Readygo技术搜索引擎 网络搜索 efish 2008-1-17 16:28:06

CList链表的问题,请各位帮帮忙!

楼主mingkknd(冰龙)2004-09-29 13:36:33 在 VC/MFC / 数据库 提问

部分代码如下  
  //自定义结构体  
  typedef   struct   CBuffer  
  {  
        char   m_szName;//装备名称  
        int   m_nSTR;//力量需求  
        int   m_nINT;//智力需求  
        int   m_nAGI;//敏捷需求  
        int   m_nHP;//附加HP  
        int   m_nMP;//附加MP  
        int   m_nAt;//附加攻击  
        int   m_nMAt;//附加魔法攻击  
        int   m_nDx;//附加物理防御  
        int   m_nMDx;//附加魔法防御  
        int   m_nDEX;//附加躲避  
        int   m_nGod;//需要金币  
  }CBuffer;  
   
  typedef   CList<CBuffer,CBuffer&>   CBufferList;  
  CBufferList   m_bufferList;  
  //从数据库中取完数据后一个一个的加入此链表  
  m_bufferList.AddHead(m_szBuffer);  
   
  现在我要从此链表中取一个名字为"木剑"的所有数据  
  要如何取出来,请各位指教  
  问题点数:0、回复次数:8Top

1 楼DentistryDoctor(不在无聊中无奈,就在沉默中变态)回复于 2004-09-29 13:43:53 得分 0

如果你为CBuffer定义了operator==可以直接CList::Find,否则只有从头到尾一个个的比较了。Top

2 楼mingkknd(冰龙)回复于 2004-09-29 13:48:52 得分 0

因为小弟是第一次使用CList链表  
  不知道如何定义operator能否指点一二呢?  
  谢谢了Top

3 楼laiyiling(Graphics ◎ Multimedia)回复于 2004-09-29 13:49:12 得分 0

需要自己写一个CompareElements<myStringStruct>(const   myStringStruct*   pElement1,   const   myStringStruct*   pElement2)    
  或者operator=(const   myStringStruct*   pElement1,   const   myStringStruct*   pElement2)  
   
  也就是重载等号运算符Top

4 楼hahu(神仙?妖怪?谢谢!)回复于 2004-09-29 13:49:21 得分 0

同意,如果用map的话,可以不用自己循环Top

5 楼flyelf(空谷清音)回复于 2004-09-29 13:51:56 得分 0

GetHeadPosition/GetNext遍历Top

6 楼mingkknd(冰龙)回复于 2004-09-29 14:51:53 得分 0

各位,说的没没怎么看懂啊,能简单的给小段代码看看吗?Top

7 楼riding(ride)回复于 2004-09-29 16:09:58 得分 0

CBuffer   buf;  
        for(   POSIITON   pos   =   m_bufferList.GetHeadPosition();   pos;   )  
        {  
                    buf   =     m_bufferList.GetAt(   pos   );  
                    if(   0   ==   ::strcmp(   buf.m_szName,   "木剑"   )       )  
                    {  
                              //找到  
                            break;  
                      }  
                    m_bufferList.GetNext(   pos   );  
        }  
  Top

8 楼TrueIAm(阿 成)回复于 2004-10-22 14:34:44 得分 0

那还不如用一个set呢.......Top

责任编辑: efish 参与评论 查找更多:
相关文章
各位大哥 ,谁知道<<delphi 5开发人员指南>… 各位大哥 ,谁知道<<delphi 5开发人员指南>>的配套光盘在哪下载??
转贴:由C#风潮想起的-给初学编程者的忠告 转贴:由C#风潮想起的-给初学编程者的忠告
用window.open(),打开一个新窗口,如何让其大小与屏… 用window.open(),打开一个新窗口,如何让其大小与屏幕一般大小。不管它是多大分辨率的。
怎么destroy 掉所有create的line? 怎么destroy 掉所有create的line?
web service 抛出异常:基础连接已经关闭 怎么解决? web service 抛出异常:基础连接已经关闭 怎么解决?
最近想买个便宜的本本,威盛的芯怎么样? 最近想买个便宜的本本,威盛的芯怎么样?
intelliJ IDEA 2.6的汉字半角问题 intelliJ IDEA 2.6的汉字半角问题
为何编译有问题? 为何编译有问题?
sql server中自定义函数传递的参数能否为表达式? sql server中自定义函数传递的参数能否为表达式?
so easy, 送分............... so easy, 送分...............
2秒记住本站域名

玩过泡泡龙吗?Readygo?Go! 再加上.Com.Cn的后缀,那就是大名小顶的readygo.com.cn

分类导航
Readygo技术搜索引擎