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
#include <afxcoll.h>
請參閱: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 | 測試是否為空列表(沒有元素) |