【原创】CTypedPtrList详细说明和具体用法- VCdog(狗)编程网- 博客园

CTypedPtrList类是个模板类,一般在软件开发中用到的时候比较多,它的作用就是类似一个链表,下面是这个类的原型

template < class BASE_CLASS, class TYPE>
  class CTypedPtrList : public BASE_CLASS

{dy}个参数说明是列表的基类,这里必须是个指针列表类(Coblist或者CPtrlist,自己觉得用其他的列表类也可以,只要是指针列表类)

第二个参数指在列表类中所存放的类型

为什么不直接用Coblist或者CPtrlist呢?这是有原因的,因为CTypedPtrList类又进一步的封装了CPtrlist,并且为xx了一些错误,还提供了一些类型的强制转化,所以说一般都是用CTypePtrList这个模板类,你也不用担心这个类封装以后会变的速度慢,因为CTypedPtrList类封装以后里面的函数是内联的,如果你想真正想掌握这个模板类还是需要看看他提供的成员函数,下面是它的成员函数
构造

首/尾访问

操作

重复

获取/修改

插入

搜索

状态

 

只要你充分能用上上面的函数我想你的CTypedPtrList这个模板类也掌握的很好了,

下面是个例子说明

首先自己定义一个类或者结构体都是可以的,只要你符合标准,下面我来定义一个结构体

                     Typedefstruct _jiegouti

{

       Cstring Name;

       Int          Age;

}Student,*lpstudent //这里只是定义一个结构体

Typedef CtypedPtrList<CPtrList ,lpstudent>CStudent;//这里定义个模板类型

CStudent m_student;//定义这个模板的变量

//下面是往这个列表中模板中添加对象,

lpstudent MyStudent;//定义一个结构体指针变量;

MyStudent =New Student;//在堆中创建一个学生

//为这个学生添加信息

MyStudent->Name=”zl”;

MyStudent->Age=12;

m_student. AddTail(MyStudent);//把这个学生添加模板这个容器中

当然了你还可以查看容器中学生的信息,请看下面代码

Lpstudent lpstudent;

Cstring TempName;

Int TempAge;

POSITION pos=m_student. GetHeadPosition();

//循环遍历找出容器中的所有学生的信息

while (pos!=NULL)

       {

              lpstudent=m_student.GetNext(pos);

              TempName=lpstudent->Name;//得到学生的名字

              TempAge=lpstudent->Age;//得到学生的年龄

       }

当然了你也可以删除这个容器中的学生对象,代码如下

POSITION pos= m_student.GetHeadPosition();

       while(pos!=NULL)

       {

              Lpstudent lpstudent;

              lpstudent=m_HotInfo.GetNext(pos);

              delete[]lpstudent;

       }

注意当一个CTypedPtrList对象被删除时,或者是当它的元素被删除时,只有指针被删除了,而它们所引用的项并没有被删除。这个大家必须自己琢磨一下,自己思考比我说效果还好当然了我这里只是说明了,这个模板的几个用法,其实还是有很多用法,因为他的成员函数也是很多的,你可以根据自己的想法去实现就可以,还有就是不管你怎么弄,其实还是里面的成员函数,你自己只要多看几点这个模板的成员函数我想对你不是很难,

  转载:VC 狗编程网(www.vcdog.com

郑重声明:资讯 【【原创】CTypedPtrList详细说明和具体用法- VCdog(狗)编程网- 博客园】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——