CObList

CObList

CObList類支持非唯一的CObject指針,並可順次訪問或通過指針值訪問有序列表。CObList列表的行為類似於雙向鏈接列表。CObList是非常有用的集合類族的代表,具有診斷轉儲的特性並且能夠包含混合的指針。

目錄

正文


CObList
CObject
└CObList
POSITION類型的變數為列表的鍵。使用POSITION變數,既可以作為列表循環中的循環變數,也可以作為標記某個位置的標籤。不過,位置並不等同於索引
在列表頭、列表尾以及在指定的位置上,進行插入元素都非常便捷。一個順序的搜索對於通過值或索引查找元素非常必要。如果這種列表很長,那麼搜索速度將非常慢。
CObList引入了IMPLEMENT_SERIAL宏,從而支持其元素的串列化與轉儲。如果一系列的CObject指針被存儲於檔案文件中,那麼使用載入插入操作符或使用Serialize成員函數,每個CObject元素都將被串列化。如果需要轉儲列表中個別CObject元素的轉儲,那麼必須將轉儲內容的深度設置為1或更大。
當刪除了對象或其元素,那麼被刪除的僅僅是CObject指針,而不是它們參考的對象。
可以從CObList派生自己的類。新的列表類,用於包含從CObject派生對象的指針,它將增添新的數據成員及新的成員函數。注意,結果列表並不是嚴格的類型安全,其原因在於它允許插入任何的CObject指針。
注意:
如果你希望串列化列表,那麼在你自己的類的執行過程中必須使用IMPLEMENT_SERIAL宏。
如果要了解有關使用CObList的更多信息,請參閱聯機文檔“Visual C++程序員指南”中的“收集”。
下面列出了同CObList類的成員函數較為相似的類:
·CPtrList
·CStringList
請參閱:CStringList, CPtrList
CObList類的成員
構造函數
CObList為CObject指針構造一個空的列表
首或尾訪問
GetHead返回列表中的首元素(列表不能為空)
GetTail返回列表中的尾元素(列表不能為空)
操作
RemoveHead從列表首刪除元素
RemoveTail從列表尾刪除元素
AddHead在列表首增加一個元素或另一個列表的所有元素(併產生一個新的列表首)
AddTail在列表尾增加一個元素或另一個列表的所有元素(併產生一個新的列表尾)
RemoveAll刪除列表中所有的元素
循環
GetHeadPosition返回列表中首元素的位置
GetTailPosition返回列表中尾元素的位置
GetNext獲取循環遍歷中的下一個元素
GetPrev獲取循環遍歷中的前一個元素
檢索/修改
GetAt獲取指定位置的元素
SetAt設置指定位置的元素
RemoveAt從列表中刪除指定位置的元素
插入
InsertBefore在給定位置之前新插入一個元素
InsertAfter在給定位置之後新插入一個元素
搜索
Find獲取由指針值指定元素的位置
FindIndex獲取由以零尾基數索引指定元素的位置
狀態
GetCount返回列表中的元素數
IsEmpty測試是否為空列表(沒有元素)