CObList
CObList
CObList類支持非唯一的CObject指針,並可順次訪問或通過指針值訪問有序列表。CObList列表的行為類似於雙向鏈接列表。CObList是非常有用的集合類族的代表,具有診斷轉儲的特性並且能夠包含混合的指針。
目錄
CObList
CObject |
└CObList |
POSITION類型的變數為列表的鍵。使用POSITION變數,既可以作為列表循環中的循環變數,也可以作為標記某個位置的標籤。不過,位置並不等同於索引。
在列表頭、列表尾以及在指定的位置上,進行插入元素都非常便捷。一個順序的搜索對於通過值或索引查找元素非常必要。如果這種列表很長,那麼搜索速度將非常慢。
CObList引入了IMPLEMENT_SERIAL宏,從而支持其元素的串列化與轉儲。如果一系列的CObject指針被存儲於檔案文件中,那麼使用載入插入操作符或使用Serialize成員函數,每個CObject元素都將被串列化。如果需要轉儲列表中個別CObject元素的轉儲,那麼必須將轉儲內容的深度設置為1或更大。
當刪除了對象或其元素,那麼被刪除的僅僅是CObject指針,而不是它們參考的對象。
可以從CObList派生自己的類。新的列表類,用於包含從CObject派生對象的指針,它將增添新的數據成員及新的成員函數。注意,結果列表並不是嚴格的類型安全,其原因在於它允許插入任何的CObject指針。
注意:
如果要了解有關使用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 | 測試是否為空列表(沒有元素) |