VC中CList用法
来源:互联网 发布:身份证伪造图片软件 编辑:程序博客网 时间:2024/05/06 18:26
初学mfc者,往往对CList等mfc的Collect类的使用感到迷惑,在使用中经常会遇到许多问题,导致对vc中的Collect类的使用产生了惧怕。以下,就个人经历而言,告诉大家如何使用CList。
CList是一个双向链表类。
1、头文件名不可少
Clist类定义在Afxtempl.h 头文件中,因此在使用该类时,需要加这个头文件名。
2、理解CList的声明和构造方法
CList的声明如下:
template< class TYPE, class ARG_TYPE >class CList : public CObject
由此,我们知道CList是一个模版类,那么他的两个class是什么意思呢?
下面看一个例子:
CList<CString ,CString&> list;//链表对象1
CList<CString,CString> list2;//链表对象2
这里的第一个参数CString是实例化的类型,第二个参数是类的成员函数的参数的调用形式,通常是类型 引用,当然也可以是对象,而不是引用。对象和引用的区别,可以看一下C++基础知识方面的书。
3、使用CList的迭代器
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.
以上是四个迭代器函数。前两个他们的返回值是POSITION,它是mfc中定义的的一种专门访问Collect类的一个数据类型。用他来表示元素的位置。
// abstract iteration position
struct __POSITION { };
typedef __POSITION* POSITION;
以上是在跟踪POSITION定义中找到的。由此,我们知道POSITION是个抽象的迭带器位置。至于怎么实现,我也只能知道这么多,如果有哪位高手知道的话,一定要告诉我们哦。
下面我们利用给出的迭代器函数,对下面建立的链表进行遍历:
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)
{
}
这样就完成了对list的遍历。
4、CList的其它函数:
5、CList的元素
class CNode : public CObject
{
public:
};
6、CList的序列化:
void CDdfDoc::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
}
else
{
list.Serialize(ar);
}
}
这样,就实现了文档的串行化,如果使用mfc生成的框架,那么我们就可以直接将这个list的数据保存到文件,并能读取了。
- VC中CList用法
- VC中CList用法
- VC中CList用法
- VC中CList用法
- VC中CList用法
- VC中CList用法 (转)
- VC中CList用法 (转)
- VC++中CList使用
- VC++中CList使用
- VC中CList用法及其成员的使用
- VC中CList用法及其成员的使用
- VC中CList用法及其成员的使用
- VC中CList用法及其成员的使用
- Visul C++中CList用法
- VC MFC中CList成员的使用
- CList的用法理解
- CList 简单用法
- VC++ 列表控件(CList) 使用方法
- DateBase数据库连接
- bootstrap的网格系统
- Qt中xml文件的使用
- android service 之二(IntentService)
- 运输妹子【NOIP2016提高A组模拟9.10】
- VC中CList用法
- 华为oj上的购物单问题,背包问题的变种,动态规划
- iOS 学习笔记 UIView动画
- SqlSessionFactoryBean注入分析
- MongoDB主从复制实践
- 用QCamera获取摄像头支持的分辨率的示例
- iOS 提示文字 类似微信拍摄小视频“手指不要放开”
- HTTP头域列表与解释 之 response篇
- screenX,clientX,pageX,offsetX,pageXoffset的区别