MFCCList使用
- MFCCList使用 推荐度:
- 相关推荐
MFC CList使用
转自:.html
一、类的概要和头文件
1. CList类:产生不定类型的列表,是一个集合类,也是一个双向链表类,是一个类模板。
2. #include "Afxtempl.h"
3. CList的构造函数,举例如下:
CList<CString ,CString&> list;
CList<CString,CString> list2;
二、CList迭代器
1. 成员函数:
GetHeadPosition | Returns the position of the head element of the list. |
GetTailPosition | Returns the position of the tail element of the list. |
GetNext | Gets the next element for iterating. |
GetPrev | Gets the previous element for iterating. |
2. 使用迭代器进行遍历双链表。
CList<CString ,CString&> list;
CString str1="hello";
CString str2="world";
CString str3="my";
CString str4="life";
list.AddTail(str1);
list.AddTail(str2);
list.AddTail(str3);
list.AddTail(str4);
POSITION pos = list.GetHeadPosition();
while(pos!=NULL)
{
}
三、CList的常用函数
1. 标题/末尾访问
GetHead 返回列表的标题元素(不能为空)
GetTail 返回列表的末尾元素(不能为空)
2. 操作
RemoveHead 从列表标题中移走元素
RemoveTail 从列表末尾移走元素
AddHead 添加一个元素(或另一个列表的所有元素)到列表标题(生成新的标题)
AddTail 添加一个元素(或另一个列表的所有元素)到列表尾部(生成新的尾部)
RemoveAll 从列表中移走所有元素
3. 循环
GetHeadPosition 返回列表标题元素的位置
GetTailPosition 返回列表尾部元素的位置
GetNext 获取用于遍历下一个元素
GetPrev 获取用于遍历的前一个元素
4. 获取/修改
GetAt 在指定位置上获得元素
SetAt 在指定位置上设置元素
RemoveAt 从列表中删除一个由位置确定的元素
5. 插入
InsertBefore 在指定位置前插入一个新的元素
InsertAfter 在指定位置后插入一个新的元素
6. 查找
Find 获得由指针值确定的元素位置
FindIndex 获得由基于零的索引指定的元素位置
7. 状态
GetCount 返回此列表中的元素数
IsEmpty 检测空列表的情况(没有元素)
四、CList的序列化
CList是一个继承了CObject的类,并且已经实现了Serialize(CArchive& ar)的函数,所以,对CList进行串行序列化不需要的。如果在CList类在CDocument定义了其对象list,那么在文档的Serialize(CArchive& ar)只需作如下修改:
void CDdfDoc::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
}
else
{
list.Serialize(ar);
}
}
这样,就实现了文档的串行化,如果使用mfc生成的框架,那么我们就可以直接将这个list的数据保存到文件,并能读取了。