zoukankan      html  css  js  c++  java
  • CList 用法

    CList简介

        CList是一个模板类,其实就是一个双向链表。支持多个对象的顺序列表,可以同时顺序或者值访问对象成员。

    参数:

      TYPE:要存储的对象类型

      ARG_TYPE:在列表中用于引用对象的类型。

    使用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是实例化的类型,第二个参数是类的成员函数的参数的调用形式,通常是类型 引用,当然也可以是对象,而不是引用。

    3、使用CList的迭代器
         迭代器是近年在链表使用中的一个常用技术。如果大家学过java,就会知道,在java中,会有专门的一个迭代 器类,这个迭代器类用来访问Collect中的数据元素。在                       在CList中,定义了几个迭代器的函数。他们方便了我们去访问数据元素。
      GetHeadPosition  /  GetTailPosition  /  GetNext  /   GetPrev

    (1)GetHeadPosition()

      声明:POSITION GetHeadPosition( ) const;

      返回值:返回列表中头元素的位置。如果列表为空返回NULL;返回值POSITION可用于迭代或者对象指针的检索。

    Example

    // Define myList.
    CList<CString,CString&> myList;
    
    // Add an element to the front of the list.
    myList.AddHead(CString("ABC"));
    
    // Verify the element at the head position
    // is the one added.
    POSITION pos = myList.GetHeadPosition();
    ASSERT(CString("ABC") == myList.GetAt(pos));
    

    (2)GetTailPosition()

      POSITION GetTailPosition( ) const;

      获得尾部元素的位置,如果列表为空,返回NULL。

    (3)GetNext()

      声明:

        TYPE& GetNext( POSITION& rPosition );

        TYPE GetNext( POSITION& rPosition ) const;

      返回值:

       如果列表为常量,返回值为头元素的拷贝。

       如果类表不为常量,返回头元素的引用

      TYPE

        列表中对象类型

      rPosition

        先前的GetNext,GetHeadPosition函数返回的一个位置值引用,或其他成员函数调用返回的引用。

      迭代过程可用此循环

      Position = m_list.GetHeadPosition();
       do 
        {
         lpConnect = m_list.GetNext(Position);
         lpConnect->lpInterface->Draw(hDC);
        } while (Position);

    (4)GetPrev()

      同GetNext,但返回列表中前一个位置引用

  • 相关阅读:
    Tomcat6 只允许指定域名访问,禁用IP地址访问,防止恶意解析
    java实现http协议发送和接收数据
    firefox下jquery ajax 返回 [object XMLDocument]处理
    js 格式化时间
    Jquery中的offset()和position()深入剖析(元素定位)
    sql格式化时间
    tomcat绑定域名
    查看tomcat的版本号
    [转载] IOS 获取网络图片的大小 改变 图片色值 灰度什么的方法集合
    CABasicAnimation动画
  • 原文地址:https://www.cnblogs.com/xpwzq/p/3368636.html
Copyright © 2011-2022 走看看