CObList

CObList类支持非唯一的CObject指针,提供双向链接列表行为,适用于存储和管理CObject派生类的指针。它能进行快速的元素插入和删除操作,支持通过指针值或位置访问元素,且具有串行化和转储特性。

CObList
CObList类支持非唯一的CObject指针,并可顺次访问或通过指针值访问有序列表。CObList列表的行为类似于双向链接列表。CObList是非常有用的集合类族的代表,具有诊断转储的特性并且能够包含混合的指针。

   POSITION类型的变量为列表的键。使用POSITION变量,既可以作为列表循环中的循环变量,也可以作为标记某个位置的标签。不过,位置并不等同于索引。
   在列表头、列表尾以及在指定的位置上,进行插入元素都非常便捷。一个顺序的搜索对于通过值或索引查找元素非常必要。如果这种列表很长,那么搜索速度将非常慢。
   CObList引入了IMPLEMENT_SERIAL宏,从而支持其元素的串行化与转储。如果一系列的CObject指针被存储于档案文件中,那么使用加载插入操作符或使用Serialize成员函数,每个CObject元素都将被串行化。如果需要转储列表中个别CObject元素的转储,那么必须将转储内容的深度设置为1或更大。
   当删除了对象或其元素,那么被删除的仅仅是CObject指针,而不是它们参考的对象。

可以从CObList派生自己的类。新的列表类,用于包含从CObject派生对象的指针,它将增添新的数据成员及新的成员函数。注意,结果列表并不是严格的类型安全,其原因在于它允许插入任何的CObject指针。

注意:
如果你希望串行化列表,那么在你自己的类的执行过程中必须使用IMPLEMENT_SERIAL宏。
如果要了解有关使用CObList的更多信息,请参阅联机文档“Visual C++程序员指南”中的“收集”。
下面列出了同CObList类的成员函数较为相似的类:
·CPtrList
·CStringList
#include <afxcoll.h>
请参阅:CStringList, CPtrList
CObList类的成员
构造函数
CObList
为CObject指针构造一个空的列表
首或尾访问
GetHead返回列表中的首元素(列表不能为空
GetTail 返回列表中的尾元素(列表不能为空)
操作
RemoveHead从列表首删除元素RemoveTail 从列表尾删除元素
AddHead 在列表首增加一个元素或另一个列表的所有元素(并产生一个新的列表首)
AddTail 在列表尾增加一个元素或另一个列表的所有元素(并产生一个新的列表尾)RemoveAll 删除列表中所有的元素
循环
GetHeadPosition返回列表中首元素的位置
GetTailPosition 返回列表中尾元素的位置
GetNext 获取循环遍历中的下一个元素GetPrev 获取循环遍历中的前一个元素
检索/修改
GetAt获取指定位置的元素SetAt 设置指定位置的元素
RemoveAt 从列表中删除指定位置的元素
插入
InsertBefore在给定位置之前新插入一个元素
InsertAfter 在给定位置之后新插入一个元素
搜索
Find获取由指针值指定元素的位置
FindIndex 获取由以零尾基数索引指定元素的位置
状态
GetCount返回列表中的元素数
IsEmpty 测试是否为空列表(没有元素)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值