MFC基本类库——链表类CList
一、鏈表基本概念
鏈表是一種物理存儲單元上非連續、非順序的存儲結構,數據元素的邏輯順序是通過鏈表中的指針鏈接次序實現的。鏈表由一系列結點(鏈表中每一個元素稱為結點)組成,結點可以在運行時動態生成。每個結點包括兩個部分:一個是存儲數據元素的數據域,另一個是存儲下一個結點地址的指針域。
使用鏈表結構可以克服數組鏈表需要預先知道數據大小的缺點,鏈表結構可以充分利用計算機內存空間,實現靈活的內存動態管理。但是鏈表失去了數組隨機讀取的優點,同時鏈表由于增加了結點的指針域,空間開銷比較大。
二、CList類
template < class TYPE, class ARG_TYPE > class CList : public CObject參數: TYPE 存儲在列表中的對象類型。 ARG_TYPE 用于參考存儲在列表中的對象的類型。可以是一個參考。類型POSITION的變量是列表的關鍵字。可使用POSITION變量作為循環因子來順序遍歷列表,作為書簽來保存位置。然而,位置不同于索引。
元素插入在列表的標題、在末尾和已知的POSITION時,查找起來非常快。按值或索引來查找一個元素,需要順序查找。如果列表太長,此查找可能較慢。
另外,使用時需要包含頭文件:#include <afxtempl.h>
三、基本函數
1.AddTail:添加一個元素(或另一個列表的所有元素)到列表尾部(生成新的尾部)
函數原型:
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的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JPG图片中的文字或表格怎么转成Word
- 下一篇: X86 bios介绍