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

#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 測試是否為空列表(沒有元素)

相關詞條

熱門詞條

聯絡我們