CTypedPtrMap 類別
為指標對應類別 CMapPtrToPtr
、 CMapPtrToWord
、 CMapWordToPtr
和 CMapStringToPtr
的物件提供類型安全「包裝函式」。
語法
template<class BASE_CLASS, class KEY, class VALUE>
class CTypedPtrMap : public BASE_CLASS
參數
BASE_CLASS
具型別指標對應類別的基類;必須是指標對應類別 ( CMapPtrToPtr
、、 CMapPtrToWord
CMapWordToPtr
或 CMapStringToPtr
)。
KEY
做為對應索引鍵的物件類別。
價值
儲存在地圖中之物件的類別。
成員
公用方法
名稱 | 描述 |
---|---|
CTypedPtrMap::GetNextAssoc | 取得反覆運算的下一個專案。 |
CTypedPtrMap::Lookup | 根據 VALUE 傳 KEY 回 。 |
CTypedPtrMap::RemoveKey | 移除索引鍵所指定的專案。 |
CTypedPtrMap::SetAt | 將專案插入對應中;如果找到相符的索引鍵,則會取代現有的專案。 |
公用運算子
名稱 | 描述 |
---|---|
CTypedPtrMap::operator [ ] | 將專案插入對應中。 |
備註
當您使用 CTypedPtrMap
時,C++ 類型檢查設備可協助消除因指標類型不相符所造成的錯誤。
由於所有 CTypedPtrMap
函式都是內嵌的,因此使用此範本並不會影響程式碼的大小或速度。
如需使用 CTypedPtrMap
的詳細資訊,請參閱集合 和 範本型類別一 文 。
繼承階層架構
BASE_CLASS
CTypedPtrMap
需求
Header: afxtempl.h
CTypedPtrMap::GetNextAssoc
擷取位於 rNextPosition
的 map 元素,然後更新 rNextPosition
以參考對應中的下一個專案。
void GetNextAssoc(
POSITION& rPosition,
KEY& rKey,
VALUE& rValue) const;
參數
rPosition
指定先前 GetNextAssoc
或 BASE_CLASS
::GetStartPosition 呼叫所傳回之 POSITION 值的參考。
KEY
指定對應索引鍵類型的樣板參數。
rKey
指定所擷取專案的傳回索引鍵。
價值
指定地圖值的型別的樣板參數。
rValue
指定擷取之專案的傳回值。
備註
此函式最適合逐一查看對應中的所有元素。 請注意,位置序列不一定與索引鍵值序列相同。
如果擷取的專案是對應中的最後一個,則 的新值 rNextPosition
會設定為 Null。
此內嵌函式會呼叫 BASE_CLASS
::GetNextAssoc 。
CTypedPtrMap::Lookup
Lookup
會使用雜湊演算法,以完全符合的索引鍵快速尋找對應專案。
BOOL Lookup(BASE_CLASS ::BASE_ARG_KEY key, VALUE& rValue) const;
參數
BASE_CLASS
樣板參數,指定這個對應類別的基類。
key
要查閱之專案的索引鍵。
價值
樣板參數,指定儲存在此對應中的數值型別。
rValue
指定擷取之專案的傳回值。
傳回值
如果找到專案,則為非零;否則為 0。
備註
此內嵌函式會呼叫 BASE_CLASS
::Lookup 。
CTypedPtrMap::operator [ ]
這個運算子只能在指派語句的左邊使用(l-value)。
VALUE& operator[ ](base_class ::base_arg_key key);
參數
價值
樣板參數,指定儲存在此對應中的數值型別。
BASE_CLASS
樣板參數,指定這個對應類別的基類。
key
要在地圖上查閱或建立之專案的索引鍵。
備註
如果沒有具有指定索引鍵的 map 元素,則會建立新的專案。 沒有與這個運算子相等的「右側」(r-value),因為有可能在對應中找不到索引鍵。 Lookup
使用成員函式來擷取專案。
CTypedPtrMap::RemoveKey
此成員函式會呼叫 BASE_CLASS
::RemoveKey 。
BOOL RemoveKey(KEY key);
參數
KEY
指定對應索引鍵類型的樣板參數。
key
要移除之專案的索引鍵。
傳回值
如果找到並成功移除專案,則為非零;否則為 0。
備註
如需更詳細的備註,請參閱 CMapStringToOb::RemoveKey 。
CTypedPtrMap::SetAt
此成員函式會呼叫 BASE_CLASS
::SetAt 。
void SetAt(KEY key, VALUE newValue);
參數
KEY
指定對應索引鍵類型的樣板參數。
key
指定 newValue 的索引鍵值。
newValue
指定物件指標,這個指標是新專案的值。
備註
如需更詳細的備註,請參閱 CMapStringToOb::SetAt 。
另請參閱
MFC 範例 COLLECT
階層架構圖表
CMapPtrToPtr 類別
CMapPtrToWord 類別
CMapWordToPtr 類別
CMapStringToPtr 類別
意見反映
https://aka.ms/ContentUserFeedback。
即將推出:我們會在 2024 年淘汰 GitHub 問題,並以全新的意見反應系統取代並作為內容意見反應的渠道。 如需更多資訊,請參閱:提交及檢視以下的意見反映: