CSimpleMap 類別
這個類別提供簡單對應數位的支援。
語法
template <class TKey, class TVal, class TEqual = CSimpleMapEqualHelper<TKey, TVal>>
class CSimpleMap
參數
TKey
索引鍵項目類型。
TVal
value 元素類型。
TEqual
特徵物件,定義 類型 T
元素的相等測試。
成員
公用 Typedefs
名稱 | 描述 |
---|---|
CSimpleMap::_ArrayElementType | 實值類型的 Typedef。 |
CSimpleMap::_ArrayKeyType | 索引鍵類型的 Typedef。 |
公用建構函式
名稱 | 描述 |
---|---|
CSimpleMap::CSimpleMap | 建構函式。 |
CSimpleMap::~CSimpleMap | 解構函式。 |
公用方法
名稱 | 描述 |
---|---|
CSimpleMap::Add | 將索引鍵和相關聯的值新增至對應數位。 |
CSimpleMap::FindKey | 尋找特定索引鍵。 |
CSimpleMap::FindVal | 尋找特定值。 |
CSimpleMap::GetKeyAt | 擷取指定的索引鍵。 |
CSimpleMap::GetSize | 傳回對應陣列中的項目數。 |
CSimpleMap::GetValueAt | 擷取指定的值。 |
CSimpleMap::Lookup | 傳回與指定索引鍵相關聯的值。 |
CSimpleMap::Remove | 拿掉索引鍵和比對值。 |
CSimpleMap::RemoveAll | 拿掉所有索引鍵和值。 |
CSimpleMap::RemoveAt | 拿掉特定的索引鍵和比對值。 |
CSimpleMap::ReverseLookup | 傳回與指定值相關聯的索引鍵。 |
CSimpleMap::SetAt | 設定與指定索引鍵相關聯的值。 |
CSimpleMap::SetAtIndex | 設定特定的索引鍵和值。 |
備註
CSimpleMap
支援任何指定類型的 T
簡單對應數位,管理索引鍵元素的未排序陣列及其相關聯的值。
參數 TEqual
會為 類型的 T
兩個項目定義相等函式的方法。 藉由建立類似 CSimpleMapEqualHelper 的類別,就有可能改變任何指定數位之相等測試的行為。 例如,處理指標陣列時,根據指標參考的值,定義相等可能很有用。 默認實作會利用 operator==()。
CSimpleMap
和 CSimpleArray 都是為了與先前的 ATL 版本相容而提供,而且 CAtlArray 和 CAtlMap 會提供更完整且更有效率的集合實作。
不同於 ATL 和 MFC 中的其他地圖集合,這個類別是使用簡單的數位列實作,而查閱搜尋需要線性搜尋。 CAtlMap
當陣列包含大量專案時,應該使用 。
需求
標頭: atlsimpcoll.h
範例
// Create a map with an integer key and character pointer value
CSimpleMap<int, char *> iArray;
CSimpleMap::Add
將索引鍵和相關聯的值新增至對應數位。
BOOL Add(const TKey& key, const TVal& val);
參數
key
索引鍵。
val
相關聯的值。
傳回值
如果成功加入索引鍵和值,則傳回 TRUE,否則傳回 FALSE。
備註
新增的每個索引鍵和值組都會釋放和重新配置對應數位記憶體,以確保每個數位的數據一律會連續儲存。 也就是說,第二個索引鍵元素一律會直接遵循記憶體中的第一個索引鍵元素等等。
CSimpleMap::_ArrayElementType
索引鍵類型的 typedef。
typedef TVal _ArrayElementType;
CSimpleMap::_ArrayKeyType
實值型別的 typedef。
typedef TKey _ArrayKeyType;
CSimpleMap::CSimpleMap
建構函式。
CSimpleMap();
備註
初始化數據成員。
CSimpleMap::~CSimpleMap
解構函式。
~CSimpleMap();
備註
釋放所有已配置的資源。
CSimpleMap::FindKey
尋找特定索引鍵。
int FindKey(const TKey& key) const;
參數
key
要搜尋的索引鍵。
傳回值
如果找到,則傳回索引鍵的索引,否則會傳回 -1。
CSimpleMap::FindVal
尋找特定值。
int FindVal(const TVal& val) const;
參數
val
要搜尋的值。
傳回值
如果找到該值,則傳回值的索引,否則會傳回 -1。
CSimpleMap::GetKeyAt
擷取位於指定索引處的索引鍵。
TKey& GetKeyAt(int nIndex) const;
參數
nIndex
要傳回之索引鍵的索引。
傳回值
傳回 nIndex 所參考的索引鍵。
備註
nIndex 所傳遞的索引必須有效,傳回值才能有意義。
CSimpleMap::GetSize
傳回對應陣列中的項目數。
int GetSize() const;
傳回值
傳回對應數位中的項目數(索引鍵和值是一個專案)。
CSimpleMap::GetValueAt
擷取位於特定索引的值。
TVal& GetValueAt(int nIndex) const;
參數
nIndex
要傳回之值的索引。
傳回值
傳回 nIndex 所參考的值。
備註
nIndex 所傳遞的索引必須有效,傳回值才能有意義。
CSimpleMap::Lookup
傳回與指定索引鍵相關聯的值。
TVal Lookup(const TKey& key) const;
參數
key
索引鍵。
傳回值
傳回相關聯的值。 如果找不到相符的索引鍵,則會傳回 NULL。
CSimpleMap::Remove
拿掉索引鍵和比對值。
BOOL Remove(const TKey& key);
參數
key
索引鍵。
傳回值
如果索引鍵和比對值已成功移除,則傳回 TRUE,否則傳回 FALSE。
CSimpleMap::RemoveAll
拿掉所有索引鍵和值。
void RemoveAll();
備註
從對應數位物件中移除所有索引鍵和值。
CSimpleMap::RemoveAt
拿掉指定索引處的索引鍵和相關聯的值。
BOOL RemoveAt(int nIndex);
參數
nIndex
要移除之索引鍵和相關聯的值。
傳回值
如果指定的索引是無效的索引,則會在成功時傳回TRUE。
CSimpleMap::ReverseLookup
傳回與指定值相關聯的索引鍵。
TKey ReverseLookup(const TVal& val) const;
參數
val
值。
傳回值
傳回相關聯的索引鍵。 如果找不到相符的索引鍵,則會傳回 NULL。
CSimpleMap::SetAt
設定與指定索引鍵相關聯的值。
BOOL SetAt(const TKey& key, const TVal& val);
參數
key
索引鍵。
val
要指派的新值。
傳回值
如果找到索引鍵,且值已成功變更,則傳回 TRUE,否則傳回 FALSE。
CSimpleMap::SetAtIndex
在指定的索引處設定索引鍵和值。
BOOL SetAtIndex(
int nIndex,
const TKey& key,
const TVal& val);
參數
nIndex
索引,參考要變更的索引鍵和值組。
key
新的索引鍵。
val
新的 值。
傳回值
如果成功,則傳回 TRUE;如果索引無效,則傳回 FALSE。
備註
更新 nIndex 所指向的索引鍵和值。