CList的用法理解

CList是一个双向链表类。CList的优势是快速灵活的插入和删除。但是在访问元素的时候,会多一个N的时间复杂度。在元素很多的时候,建议把数据分段存储。

1、包含头文件Afxtempl.h

     在你要使用CList链表类的地方,使用#include  <Afxtempl.h>,或者直接在stdafx.h中包含这句。

2、理解CList的声明和构造方法

CList的声明如下:

template< class TYPE, class ARG_TYPE >

class CList : public CObject

CList的声明有2种方式,决定的是参数的使用是引用,还是复制。

例如:

CList<CString ,CString&> list1;        //注意引用符号的位置是在类型后面。<类型&>

CList<CString,CString> list2;          

第一个参数,表示的是链表的元素的数据类型,这里类似一个声明,声明你使用的链表中的数据类型是什么。

第二个参数,分2种形式,一种是引用形式,一种是复制形式,那么这个引用和复制,体现的作用在哪里呢?其实,这个引用和复制,只是体现在元素的添加,查找上面。比如我们往刚才声明的这个链表list1中添加元素。

CList<CString ,CString&> list1; //

CString str = "abc";

list1.AddTail(str);              //str是以引用的方式,添加到list1中的,类似声明一个函数 void fun(CString &a);

再看另外一个中声明方式:

CList<CString,CString> list2;//

CString str = "abc";

list2.AddTail(s

  • 3
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值