VC中ctypedptrlist類的用法?

  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
  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;

VC中ctypedptrlist類的用法

  返回值:
  如果是通過一個指向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 *pNewList );

  返回值:
  第一種版本返回新插入的元素的POSITION值。
  引數: TYPE 儲存在基類列表中的元素的型別。
  newElement 要新增到此列表中的物件指標。可以是NULL值。
  BASE_CLASS 此型別指標列表類的基類;必須是一個指標列表類(CObList或CPtrList)。
  pNewList 一個指向另一個CTypedPtrList物件的指標。在pNewList中的元素將被新增到列表中。
  說明:
  此成員函式呼叫BASE_CLASS::AddHead。
  第一種版本將一個新元素新增到列表的頭元素之前。
  第二種版本將另一個列表中的元素新增到此列表的頭元素之前。
  CTypedPtrList::AddTail
  POSITION AddTail( TYPE newElement );
  void AddTail( CTypedPtrList *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;

VC中ctypedptrlist類的用法

  返回值:
  如果是通過一個指向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基礎類庫的除錯版將給出斷言。

VC中ctypedptrlist類的用法

相關問題答案