大家好,欢迎来到IT知识分享网。
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
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/126380.html