日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MFC基本类库——链表类CList

發布時間:2023/12/31 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MFC基本类库——链表类CList 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、鏈表基本概念
鏈表是一種物理存儲單元上非連續、非順序的存儲結構,數據元素的邏輯順序是通過鏈表中的指針鏈接次序實現的。鏈表由一系列結點(鏈表中每一個元素稱為結點)組成,結點可以在運行時動態生成。每個結點包括兩個部分:一個是存儲數據元素的數據域,另一個是存儲下一個結點地址的指針域。
使用鏈表結構可以克服數組鏈表需要預先知道數據大小的缺點,鏈表結構可以充分利用計算機內存空間,實現靈活的內存動態管理。但是鏈表失去了數組隨機讀取的優點,同時鏈表由于增加了結點的指針域,空間開銷比較大。

二、CList類

template < class TYPE, class ARG_TYPE > class CList : public CObject參數: TYPE 存儲在列表中的對象類型。 ARG_TYPE 用于參考存儲在列表中的對象的類型。可以是一個參考。

類型POSITION的變量是列表的關鍵字。可使用POSITION變量作為循環因子來順序遍歷列表,作為書簽來保存位置。然而,位置不同于索引。
元素插入在列表的標題、在末尾和已知的POSITION時,查找起來非常快。按值或索引來查找一個元素,需要順序查找。如果列表太長,此查找可能較慢。

另外,使用時需要包含頭文件:#include <afxtempl.h>

三、基本函數

1.AddTail:添加一個元素(或另一個列表的所有元素)到列表尾部(生成新的尾部)
函數原型:

POSITION AddTail( ARG_TYPE newElement );參數:ARG_TYP E確定列表元素類型的參數(可能為參考)。 newElement 新元素。 返回:新插入元素的POSITION值void AddTail( CList* pNewList ); 參數:pNewList,指向另一個CList列表的指針。pNewList中的元素將被添加到此列表中

2.GetHeadPosition:返回列表標題元素的位置
GetTailPosition:返回列表尾部元素的位置

函數原型:

POSITION GetHeadPosition( ) const POSITION GetTailPosition( ) const 返回值:一個可用于循環的POSITION值或獲取對象的指針。如果列表為空,則返回NULL。

3.GetNext:遍歷下一個元素
GetPrev:遍歷的前一個元素

函數原型:

TYPE GetNext( POSITION& rPosition ) TYPE GetPrev( POSITION& rPosition ) 參數:TYPE:指定列表對象類型的模板參數。 rPosition 由前一個GetPrev/GetNext,或其它成員函數調用返回的POSITION值的參考。 說明:獲得由rPosition標志的列表元素,然后設置rPosition 為 列表下一個入口的POSITION值。如果獲取的元素是列表中最后一個, 那么rPosition的新值設置為NULL

其它參考:https://blog.csdn.net/phenixyf/article/details/80819380

總結

以上是生活随笔為你收集整理的MFC基本类库——链表类CList的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。