请问mfc中的链表类怎么应用呢?msdn看不太懂

解决方案 »

  1.   

    //弄一个支持MFC的控制台程序。
             CPtrList ptr;
    ptr.AddTail((void*)100);
    ptr.AddHead((void*)200); //遍历
    POSITION pos = ptr.GetHeadPosition();
    while (pos != NULL)
    {
    void *p = ptr.GetNext(pos);
    cout << (long)p << endl;
    }
      

  2.   

    用MFC的集合类不如用STL的容器类。
      

  3.   

    首先必须要加入头文件:#include   <afxtempl.h> 
    VC中有很多链表类,包括一些很有用的模板。经常使用的有:   
      1.CPtrList:元素为void*类型的链表   
      2.CTypedPtrList<base_class,   ele_class>,特定指针类型的模板   
      在使用时包含<afxtempl.h>头文件   
      下面是一个简单的使用CPtrList的遍历程序:   
      CPtrList   myList;   
        
      POSITION   pos   =   myList.GetHeadPosition();   
      while   (pos   !=   NULL)   
      {   
              void*   pv   =   myList.GetNext(pos);   
              //   todo::   
      }   
        
      下面是使用CTypedPtrList的类子。   
      //首先定义一个模板实例   
      typedef   CTypedPtrList<CPtrList,   CMyClass*>   CMyList;   
        
      CMyList   myList;   
      POSITION   pos   =   myList.GetHeadPosition();   
      while   (pos   !=   NULL)   
      {   
              CMyClass*   p   =   myList.GetNext(pos);   
              //todo::   
      }   
        
      VC的集合类(链表、数组和映射等)非常好用,而且功能强大,性能也很好.