64template<
typename KEY,
typename VAL,
typename INK=KEY>
111 virtual bool Lock(DWORD dwTime = INFINITE)
const
113 return m_pMap->
Lock();
136 virtual const KEY&
At(INDEX index)
const
138 return m_pMap->
At(index).
first;
180 virtual bool Lock(DWORD dwTime = INFINITE)
const
182 return m_pMap->
Lock();
205 virtual const VAL&
At(INDEX index)
const
221 const VAL* m_SearchKey(INK key)
const
228 if ( P[i].first == key )
230 return &(P[i].second);
243 VAL* m_SearchKey(INK key)
247 if ( m_vPair[i].first == key )
249 return &(m_vPair[i].second);
287 m_vPair = other.m_vPair;
299 virtual bool Lock(DWORD dwTime = INFINITE)
const
301 return m_vPair.
Lock();
343 return m_vPair.
Get(index);
356 return m_vPair.
At(index);
369 return m_vPair.
Ref(index);
383 return m_vPair.
Set(index, t);
427 return m_vPair.
Remove(index);
455 void SetKey(INK key,
const VAL& newValue)
471 VAL* P = m_SearchKey(key);
477 P = m_SearchKey(key);
493 const VAL* P = m_SearchKey(key);
510 if ( P[i].first == key )
529 return m_SearchKey(key);
542 return m_SearchKey(key);
554 bool Get(INDEX index, KEY& _rKey, VAL& _rValue)
const
562 _rKey = P[index].
first;
563 _rValue = P[index].
second;
577 const VAL* P = m_SearchKey(key);
578 if ( P == NULL ){
return false; }
592 return m_SearchKey(key) != NULL;
622 if ( size != c.GetSize() )
629 const KEY& k = c.At(i).first;
635 const VAL& v = c.At(i).second;
#define loop(VAR, CNT)
loop構文.
virtual size_t GetSize(void) const
[取得] 要素数取得
virtual bool Lock(DWORD dwTime=INFINITE) const
[排他] ロック
virtual const KEY & At(INDEX index) const
[取得] 要素の参照取得.
CConstKeysAdapter(const CMapT *map)
コンストラクタ
virtual void Unlock(void) const
[排他] アンロック
virtual size_t GetSize(void) const
[取得] 要素数取得
virtual bool Lock(DWORD dwTime=INFINITE) const
[排他] ロック
virtual const VAL & At(INDEX index) const
[取得] 要素の参照取得.
virtual void Unlock(void) const
[排他] アンロック
CConstValuesAdapter(const CMapT *map)
コンストラクタ
virtual CPair & Ref(INDEX index)
[取得] 要素の参照取得.
CConstKeysAdapter GetKeysAdapter(void) const
[取得] キーのみの参照アダプタ取得.
virtual size_t GetSize(void) const
[取得] 要素数取得
bool RemoveKey(INK key)
[削除] キーと値を削除
friend class CMapTest
フレンドクラス宣言
virtual bool Set(INDEX index, const CPair &t)
[設定] 要素の設定.
void SetIncrementSize(size_t size)
[設定] 余白サイズ
VAL & operator[](INK key)
[取得] キーに対する値の参照
CMapT(size_t size=0)
コンストラクタ
virtual bool Remove(INDEX index)
[削除] キーと値一つ削除.
const VAL & operator[](INK key) const
[取得] キーに対する値の参照
virtual bool Lock(DWORD dwTime=INFINITE) const
[排他] ロック
void SetKey(INK key, const VAL &newValue)
[設定] キーに対する値設定
TNB::CPairT< KEY, VAL > CPair
ペア型 定義
bool Get(INDEX index, KEY &_rKey, VAL &_rValue) const
[取得] キーと値を取得.
CConstValuesAdapter GetValuesAdapter(void) const
[取得] 値のみの参照アダプタ取得.
CVectorT< KEY > EnumKeys(void) const
[取得] キーの一覧
virtual const CPair & At(INDEX index) const
[取得] 要素の参照取得.
virtual bool SetSize(size_t size)
[操作] サイズ指定.
virtual bool RemoveAll(void)
[削除] すべてのキーと値を削除
virtual size_t Append(const IConstCollectionT< CPair > &c)
[追加] 追加.
virtual ~CMapT(void)
デストラクタ
CMapT(const CMapT &map)
コピーコンストラクタ
bool HasKey(INK key) const
[確認] キー有無
const VAL * GetValuePtr(INK key) const
[取得] 値アドレス取得.
virtual void Unlock(void) const
[排他] アンロック
virtual INDEX Add(const CPair &t)
[追加] キーと値追加.
CMapT & operator=(const CMapT &other)
[代入] コピーオペレータ
bool Lookup(INK key, VAL &_rValue) const
[取得] キーに対する値取得
virtual bool IsEqual(const IConstCollectionT< TNB::CPairT< KEY, VAL > > &c) const
[確認] 比較.
VAL * GetValuePtr(INK key)
[取得] 値アドレス取得.
virtual CPair Get(INDEX index) const
[取得] キーと値を取得.
virtual size_t GetSize(void) const
[取得] サイズ取得
virtual TYP Get(INDEX index) const
[取得] 要素の取得.
void SetIncrementSize(size_t size)
[設定] 余白サイズ
virtual bool Remove(INDEX index)
[削除] 要素一つ削除.
virtual const TYP & At(INDEX index) const
[取得] 要素の参照取得.
virtual bool Lock(DWORD dwTime=INFINITE) const
[排他] ロック
virtual TYP & Ref(INDEX index)
[取得] 要素の参照取得.
virtual bool RemoveAll(void)
[削除] 空化
virtual const TYP * ReferBuffer(void) const
[取得] データアドレス取得
virtual INDEX Add(const TYP &t)
[追加] 要素一つ追加.
virtual void Unlock(void) const
[排他] アンロック
virtual bool Set(INDEX index, const TYP &t)
[設定] 要素の設定.
TNB::CMapT< CStr, CStr, LPCTSTR > CStrsMap
文字文字マップクラス.
TNB::CMapT< CAscii, CAscii, LPCSTR > CAsciisMap
文字文字マップクラス.
#define EXCLUSIVE2(CLS1, CLS2)
簡易排他ツイン制御マクロ.
#define EXCLUSIVE(CLS)
簡易排他制御マクロ.
bool IsInRange(INDEX value, size_t size)
[確認] 範囲チェック.
virtual size_t Copy(const IConstCollectionT< TYP > &c)
[設定] コピー.
virtual size_t Append(const IConstCollectionT< TNB::CPairT< KEY, VAL > > &c)
[追加] 追加.
static IComparatorT & GetDefault(void)
[作成] 汎用コンパレータ取得.
virtual bool IsEqualTo(const TYP &t1, const TYP &t2) const
[確認] 比較
virtual const TYP & At(INDEX index) const =0
[取得] 要素の参照取得.