共用方式為


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 所指向的 索引鍵和值。

另請參閱

類別概觀