CList链表的问题,请各位帮帮忙!
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
-
相关文章
2秒记住本站域名
玩过泡泡龙吗?Readygo?Go! 再加上.Com.Cn的后缀,那就是大名小顶的readygo.com.cn
