Ctypedptrlist

GetTail TYPE TYPE

CTypedPtrList
template < class BASE_CLASS, class TYPE >
class CTypedPtrList : public BASE_CLASS
參數: BASE_CLASS 類型指針列表類的基類;必須是一個指針列表類(CObList或CPtrList)。
TYPE 保存在基類列表中的元素的類型。
說明:
CTypedPtrList類為類CPtrList的對象提供了一個類型-安全的“包裝”。當你使用CTypedPtrList而不是CObList或CPtrList的時候,C++類型-檢查工具幫助消除由不匹配的指針類型引發的錯誤。
另外,CTypedPtrList包裝實現了許多在使用CObList或CPtrList時要實現的強制轉換。
因為所有的CTypedPtrList函式都是內聯的,所以使用這個模板不會明顯地影響你的代碼的大小和速度。
從CObList派生的列表可以序列化的,但是從CPtrList派生的列表卻不能。
當一個CTypedPtrList對象被刪除時,或者是當它的元素被刪除時,只有指針被刪除了,而它們所引用的項並沒有被刪除。
有關使用CTypedPtrList的更多信息,參見“Visual C++程式設計師指南”中的文章“集合”和“基於模板的類”。
#include <afxtempl.h>
CTypedPtrList類成員
首/尾元素訪問
GetHead 返回列表的頭元素(不能是空的)
GetTail 返回列表的尾元素(不能是空的)
操作
RemoveHead 從列表的頭部刪除元素
RemoveTail 從列表的尾部刪除元素
AddHead 將一個元素(或另一個數組中的所有元素)添加到列表的頭部(產生一個新的頭部)
AddTail 將一個元素(或另一個數組中的所有元素)添加到列表的尾部(產生一個新的尾部)
重複
GetNext 獲取用於反覆的下一個元素
GetPrev 獲取用於反覆的前一個元素
獲取/修改
GetAt 獲取在一個給定位置處的元素
SetAt 設定在一個給定位置處的元素
成員詳細解釋
CTypedPtrList::GetHead
TYPE& GetHead( );
TYPE GetHead( ) const;
返回值:
如果是通過一個指向const CTypedPtrList的指針訪問此列表,則GetHead返回一個類型由模板參數TYPE指定的指針。這使此函式只能被使用在賦值語句的右邊,這樣就保護了列表不被修改。
如果列表被直接訪問,或通過一個指向CTypedPtrList的指針訪問,則GetHead返回對一個類型由模板參數TYPE指定的指針的引用。這使得此函式可以使用在賦值語句的任何一邊,從而允許該列表可以被修改。
參數: TYPE 指定保存在列表中的元素類型的模板參數。
說明:
此成員函式用來獲取代表此列表中的頭元素的指針。
在調用GetHead之前,你必須保證該列表不是空的。如果該列表是空的,則Microsoft基礎類庫的調試版將給出斷言。可以使用IsEmpty來檢驗該列表是否包含元素。
CTypedPtrList::GetTail
TYPE& GetTail( );
TYPE GetTail( ) const;
返回值:
如果是通過一個指向const CTypedPtrList的指針訪問此列表,則GetTail返回一個類型由模板參數TYPE指定的指針。這使此函式只能被使用在賦值語句的右邊,這樣就保護了列表不被修改。
如果列表被直接訪問,或通過一個指向CTypedPtrList的指針訪問,則GetTail返回對一個類型由模板參數TYPE指定的指針的引用。這使得此函式可以使用在賦值語句的任何一邊,從而允許該列表可以被修改。
參數: TYPE 指定保存在列表中的元素類型的模板參數。
說明:
此成員函式用來獲取此列表中的頭元素。
在調用GetTail之前,你必須保證該列表不是空的。如果列表是空的,則Microsoft基礎類庫的調試版將給出斷言。使用IsEmpty來檢驗列表是否包含元素。
CTypedPtrList::RemoveHead
TYPE RemoveHead( );
返回值:
返回先前在列表頭部的指針。這個指針的類型由模板參數TYPE指定。
參數: TYPE 指定保存在列表中的元素類型的模板參數。
說明:
此成員函式從列表的頭部刪除元素並返回這個元素。
在調用RemoveHead之前,你必須保證該列表不是空的。如果列表是空的,則Microsoft基礎類庫的調試版將給出斷言。使用IsEmpty來檢驗列表是否包含元素。
CTypedPtrList::RemoveTail
TYPE RemoveTail( );
返回值:
返回先前在列表尾部的指針。這個指針的類型由模板參數TYPE指定。
參數: TYPE 指定保存在列表中的元素類型的模板參數。
說明:
此成員函式從列表的尾部刪除元素並返回這個元素。
在調用RemoveHead之前,你必須保證該列表不是空的。如果列表是空的,則Microsoft基礎類庫的調試版將給出斷言。使用IsEmpty來檢驗列表是否包含元素。
CTypedPtrList::AddHead
POSITION AddHead( TYPE newElement );
void AddHead( CTypedPtrList <BASE_CLASS, TYPE> *pNewList );
返回值:
第一種版本返回新插入的元素的POSITION值。
參數: TYPE 保存在基類列表中的元素的類型。
newElement 要添加到此列表中的對象指針。可以是NULL值
BASE_CLASS 此類型指針列表類的基類;必須是一個指針列表類(CObList或CPtrList)。
pNewList 一個指向另一個CTypedPtrList對象的指針。在pNewList中的元素將被添加到列表中。
說明:
此成員函式調用BASE_CLASS::AddHead。
第一種版本將一個新元素添加到列表的頭元素之前。
第二種版本將另一個列表中的元素添加到此列表的頭元素之前。
CTypedPtrList::AddTail
POSITION AddTail( TYPE newElement );
void AddTail( CTypedPtrList <BASE_CLASS, TYPE> *pNewList );
返回值:第一個版本返回新插入的元素的POSITION值。
參數 TYPE 保存在基類列表中的元素的類型。
newElement 要添加到此列表中的對象指針。可以是NULL值。
BASE_CLASS 此類型指針列表類的基類;必須是一個指針列表類(CObList或CPtrList)。
pNewList 一個指向另一個CTypedPtrList對象的指針。在pNewList中的元素將被添加到列表中。
說明:
此成員函式調用BASE_CLASS::AddTail。
第一種版本將一個新元素添加到列表的尾元素之後。
第二種版本將另一個列表中的元素添加到此列表的尾元素之後。
CTypedPtrList::GetNext
TYPE& GetNext( POSITION& rPosition );
TYPE GetNext( POSITION& rPosition ) const;
返回值:
如果是通過一個指向const CTypedPtrList的指針訪問此列表,則GetNext返回一個類型由模板參數TYPE指定的指針。這使此函式只能被使用在賦值語句的右邊,這樣就保護了列表不被修改。
如果列表被直接訪問,或通過一個指向CTypedPtrList的指針訪問,則GetNext返回對一個類型由模板參數TYPE指定的指針的引用。這使得此函式可以使用在賦值語句的任何一邊,從而允許該列表可以被修改。
參數: TYPE 指定保存在列表中的元素類型的模板參數。
rPosition 一個對先前調用GetNext,GetHeadPosition或其他成員函式返回的POSITION值的引用。
說明:
此成員函式用來獲取由rPosition標識的列表元素,然後將rPosition設定為列表中的下一個項的POSITION值。如果你是通過調用GetHeadPosition或CPtrList::Find來建立初始位置的,你就可以使用GetNext來實現一個向前的反覆循環。
你必須保證你的POSITION值代表的是列表中的一個有效位置。如果位置是無效的,則Microsoft基礎類庫的調試版將給出斷言。
如果獲取的元素是列表中的最後一個,則rPosition被設定為新值NULL。
在一個反覆中刪除一個元素是有可能的。參見CObList::RemovAt的示例。
CTypedPtrList::GetPrev
TYPE& GetPrev(POSITION& rPosition );
TYPE GetPrev( POSITION& rPosition ) const;
返回值:
如果是通過一個指向const CTypedPtrList的指針訪問此列表,則GetPrev返回一個類型由模板參數TYPE指定的指針。這使此函式只能被使用在賦值語句的右邊,這樣就保護了列表不被修改。
如果列表被直接訪問,或通過一個指向CTypedPtrList的指針訪問,則GetPrev返回對一個類型由模板參數TYPE指定的指針的引用。這使得此函式可以使用在賦值語句的任何一邊,從而允許該列表可以被修改。
參數: TYPE 指定保存在列表中的元素類型的模板參數。
rPosition 一個對先前調用GetPrev或其它成員函式返回的POSITION值的引用。
說明:
此成員函式用來獲取由rPosition標識的列表元素,然後將rPosition設定為列表中的下一個項的POSITION值。如果你是通過調用GetTailPosition或Find來建立初始位置的,你就可以使用GetPrev來實現一個反向的反覆循環。
你必須保證你的POSITION值代表的是列表中的一個有效位置。如果位置是無效的,則Microsoft基礎類庫的調試版將給出斷言。
如果獲取的元素是列表中的第一個,則rPosition被設定為新值NULL。
CTypedPtrList::GetAt
TYPE& GetAt( POSITION position );
TYPE GetAt( POSITION position ) const;
返回值:
如果是通過一個指向const CTypedPtrList的指針訪問此列表,則GetAt返回一個類型由模板參數TYPE指定的指針。這使此函式只能被使用在賦值語句的右邊,這樣就保護了列表不被修改。
如果列表被直接訪問,或通過一個指向CTypedPtrList的指針訪問,則GetAt返回對一個類型由模板參數TYPE指定的指針的引用。這使得此函式可以使用在賦值語句的任何一邊,從而允許該列表可以被修改。
參數: TYPE 指定保存在列表中的元素類型的模板參數。
position 一個由先前調用GetHeadPosition或Find成員函式返回的POSITION值。
說明:
一個類型為POSITION的變數是此列表的一個關鍵字。它與索引是不一樣的,你不能自己處理一個POSITION值。GetAt獲取與一個給定位置關聯的CObject指針。
你必須確保你的POSITION值表示的是列表中的一個有效位置。如果它是無效的,則Microsoft基礎類庫的調試版將給出斷言。
這個內聯函式調用了BASE_CLASS::GetAt。
CTypedPtrList::SetAt
void SetAt( POSITION pos, TYPE newElement );
參數: pos 要被設定的元素的POSITION。
TYPE 保存在基類列表中的元素類型。
newElement 要被寫入列表中去的對象指針。
說明:
此成員函式調用BASE_CLASS::SetAt。
一個類型為POSITION的變數是此列表的一個關鍵字。它與索引是不一樣的,你不能自己處理一個POSITION值。SetAt寫對象指針到列表中指定位置。
你必須確保你的POSITION值表示的是列表中的一個有效位置。如果它是無效的,則Microsoft基礎類庫的調試版將給出斷言。
更多的細節說明,參見CObList::SetAt。

相關詞條

相關搜尋

熱門詞條

聯絡我們