VC中CList用法及其成员的使用

上传人:cl****1 文档编号:561514022 上传时间:2023-01-16 格式:DOC 页数:9 大小:35.50KB
返回 下载 相关 举报
VC中CList用法及其成员的使用_第1页
第1页 / 共9页
VC中CList用法及其成员的使用_第2页
第2页 / 共9页
VC中CList用法及其成员的使用_第3页
第3页 / 共9页
VC中CList用法及其成员的使用_第4页
第4页 / 共9页
VC中CList用法及其成员的使用_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《VC中CList用法及其成员的使用》由会员分享,可在线阅读,更多相关《VC中CList用法及其成员的使用(9页珍藏版)》请在金锄头文库上搜索。

1、VC中CList用法及其成员的使用初学mfc者,往往对CList等mfc的Collect类的使用感到迷惑,在使用中经常会遇到许多问题,导致对vc中的Collect类的使用产生了惧怕。以下,就个人经历而言,告诉大家如何使用CListoCList是一个双向链表类。1、头文件名不可少Clist类定义在Afxtempl.h头文件中,因此在使用该类时,需要加这个头文件名。2、理解CList的声明和构造方法CList的声明如下:templateclassCList:publicCObject山此,我们知道CList是一个模版类,那么他的两个class是什么意思呢?下面看一个例子:CListlist;/链表

2、对象1CListlist2;/链表对象2这里的第一个参数CString是实例化的类型,第二个参数是类的成员函数的参数的调用形式,通常是类型引用,当然也可以是对象,而不是引用。对象和引用的区别,可以看一下C卄基础知识方面的书。/MSDN:使用时要#includeConstructionCListConstructsanemptyorderedlist建立一个链表example:CListmyList;/建立一个int链表CListmyList(16);/建立一个cstring的链表,后面的16表示链表里面数据的个数,如果不写的话,可能是不限个数?CListmyList;/建立一个MYTYPE类型

3、(自定义)的链表如果不存入数据的话,刚建立的链表是空的,头尾都为空Head/TailAccessGetHeadReturnstheheadelementofthelist(cannotbeempty)返回链表的头数据例子:CListint,intmyList:for(inti=0;imyList;for(inti=0;imyList;for(inti=0;i10000;i+)myList.AddTail(int(i);存入数据inttmp二myList.RemoveHead():/tmp被赋予了之询的头数据:0;同时数据个数变为9999;RemoveTailRemovestheelementf

4、romthetailofthelist移除链表尾数据,链表数据个数减1,返回缩减前的尾数据例子:CListmyList;for(inti=0;i10000;i+)myList.AddTail(int(i):存入数据inttmp=myList.RemoveTail();/tmp被赋予了之前的尾数据:9999;同时数据个数变为9999;AddHeadAddsanelement(oralltheelementsinanotherlist)totheheadofthelist(makesanewhead).在链表头处插入新数据,链表数据个数加1,返回新的链表头位置(POSITION);例子:CList

5、int,intmyList;for(inti=0;imyList;for(inti=0;i10000;i+)myList.AddTail(int(i);存入数据POSITIONpos=myList.GetHeadPositionO;/获得链表头的位置GetTailPositionReturnsthepositionofthetailelementofthelist.返回链表尾的位置;CListmyList;for(inti=0;i10000;i+)myList.AddTail(int(i);存入数据POSITIONpos=myList.GetTailPosition();/获得链表尾的位置Ge

6、tNextGetsthenextelementforiterating.返回当前位置的数据,之后,位置后移一位;CListmyList;for(inti=0;i10000;i+)myList.AddTail(int(i):存入数据POSITIONpos=myList.GetHeadPositionO;/获得链表头的位置inttmp二myList.GetNext(pos):/tmp被赋予了头数据的值:0;同时pos指向第二个数据1;GetPrevGetsthepreviouselementforiterating.返回当前位置的数据,之后,位置前移一位;CListint,intmyList;fo

7、r(inti=0;i10000;i+)myList.AddTail(int(i);存入数据POSITIONpos=myList.GetTailPositionO;/获得链表尾的位置inttmp二myList.GetNext(pos):/tmp被赋予了尾巴数据的值:9999;同时pos指向倒数第二个数据9998;Retrieval/ModificationGetAtGetstheelementatagivenposition.返回指定位置的数据;POSITIONpos=myList.GetTailPositionO;/获得链表尾的位置,还可以继续改变pos,以指向其他数据inttmp=myLis

8、t.GetAt(pos):/tmp被赋予链表尾的数据SetAtSetstheelementatagivenposition.CListint,intmyList;for(inti=0;imyList;for(inti=0;i10000;i+)myList.AddTail(int(i);存入数据POSITIONpos=myList.GetTailPositionO;/获得链表尾的位置myList.RemoveAt(pos);/链表pos(尾部)位置的数据被清除,数据个数变为9999;InsertionInsertBeforeInsertsanewelementbeforeagivenpositi

9、on.在指定位置前插入一个新数据,数据个数加1;CListmyList;for(inti=0;i10000;i+)myList.AddTail(int(i);存入数据POSITIONpos=myList.GetHeadPositionO;/获得第一个数据的位置myList.InsertBefore(pos,int(123);/在第一个数据前插入一个新数据:123,同时数据个数变为10001InsertAfterInsertsanewelementafteragivenposition.在指定位置后插入一个新数据,数据个数加1;CListmyList;for(inti=0;i10000;i+)m

10、yList.AddTail(int(i);存入数据POSITIONpos=myList.GetHeadPositionO;/获得第一个数据的位置myList.InsertAfter(pos,int(123);/在第一个数据后插入一个新数据:123,同时数据个数变为10001SearchingFindGetsthepositionofanelementspecifiedbypointervalue.返回指定数据对应的位置;POSITIONpos=myList.Find(int(0);获得0(链表头)的位置FindindexGetsthepositionofanelementspecifiedbyazero-basedindex.返回索引号对应的位置;POSITIONpos=myList.Findindex(0);/0表示链表头,以此类推StatusGetCountReturnsthenumberofelementsinthislist返回链表的数据个数intnum=myList.GetCount();/获得链表的数据个数IsEmptyTestsfortheemptylistcondition(noelements)判定链表是否为空;返回1表示链表是空,返回0表示链表非空;BOOLempty二myListIsEmptyO;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号