TNB Library
クラス | 公開型 | 公開メンバ関数 | 全メンバ一覧
CMapT< KEY, VAL, INK > クラステンプレート

マップ型情報管理テンプレート [詳解]

#include <TnbMap.h>

+ CMapT< KEY, VAL, INK > の継承関係図

クラス

class  CConstKeysAdapter
 マップ型情報のキーのみ参照アダプタクラス [詳解]
 
class  CConstValuesAdapter
 マップ型情報の値のみ参照アダプタクラス [詳解]
 

公開型

typedef TNB::CPairT< KEY, VAL > CPair
 ペア型 定義 [詳解]
 

公開メンバ関数

virtual INDEX Add (const CPair &t)
 [追加] キーと値追加. [詳解]
 
virtual size_t AddElements (size_t size, const TNB::CPairT< KEY, VAL > *P=NULL)
 [追加] 複数要素追加. [詳解]
 
INDEX AddEx (const TNB::CPairT< KEY, VAL > &t)
 [追加] 要素一つ追加. [詳解]
 
virtual size_t Append (const IConstCollectionT< CPair > &c)
 [追加] 追加. [詳解]
 
virtual const CPairAt (INDEX index) const
 [取得] 要素の参照取得. [詳解]
 
iterator begin (void)
 [反復] 先頭iterator. [詳解]
 
const_iterator begin (void) const
 [反復] 先頭const_iterator. [詳解]
 
 CMapT (const CMapT &map)
 コピーコンストラクタ [詳解]
 
 CMapT (size_t size=0)
 コンストラクタ [詳解]
 
virtual INT_PTR Compare (const IConstCollectionT< TNB::CPairT< KEY, VAL > > &c) const
 [確認] 比較. [詳解]
 
virtual size_t Copy (const IConstCollectionT< TNB::CPairT< KEY, VAL > > &c)
 [設定] コピー. [詳解]
 
virtual size_t CopyElements (size_t size, const TNB::CPairT< KEY, VAL > *P=NULL)
 [設定] コピー. [詳解]
 
virtual size_t Cull (const IChecker &checker, bool boIsReverse=false)
 [削除] 間引き. [詳解]
 
virtual void Deserialize (const IDeserializer &ds)
 [処理] デシリアライズ [詳解]
 
iterator end (void)
 [反復] 最後iterator. [詳解]
 
const_iterator end (void) const
 [反復] 最後const_iterator. [詳解]
 
CVectorT< KEY > EnumKeys (void) const
 [取得] キーの一覧 [詳解]
 
INDEX Find (const IChecker &checker, INDEX startIndex=0, bool boIsReverse=false) const
 [検索] 条件一致要素の検索. [詳解]
 
INDEX Find (const IConstCollectionT< TNB::CPairT< KEY, VAL > > &t, const IComparatorT< TNB::CPairT< KEY, VAL > > &comparator, INDEX startIndex=0) const
 [検索] 指定配列の検索. [詳解]
 
INDEX Find (const IConstCollectionT< TNB::CPairT< KEY, VAL > > &t, INDEX startIndex=0) const
 [検索] 指定配列の検索. [詳解]
 
INDEX Find (const TNB::CPairT< KEY, VAL > &t, const IComparatorT< TNB::CPairT< KEY, VAL > > &comparator, INDEX startIndex=0) const
 [検索] 指定要素の検索. [詳解]
 
INDEX Find (const TNB::CPairT< KEY, VAL > &t, INDEX startIndex=0) const
 [検索] 指定要素の検索. [詳解]
 
INDEX FindMax (const IComparatorT< TNB::CPairT< KEY, VAL > > &comparator, const TNB::CPairT< KEY, VAL > &def) const
 [検索] 要素の最大検索. [詳解]
 
INDEX FindMax (const TNB::CPairT< KEY, VAL > &def) const
 [検索] 要素の最大検索. [詳解]
 
INDEX FindMin (const IComparatorT< TNB::CPairT< KEY, VAL > > &comparator, const TNB::CPairT< KEY, VAL > &def) const
 [検索] 要素の最小検索. [詳解]
 
INDEX FindMin (const TNB::CPairT< KEY, VAL > &def) const
 [検索] 要素の最小検索. [詳解]
 
virtual CPair Get (INDEX index) const
 [取得] キーと値を取得. [詳解]
 
bool Get (INDEX index, KEY &_rKey, VAL &_rValue) const
 [取得] キーと値を取得. [詳解]
 
virtual size_t GetElements (size_t size, TNB::CPairT< KEY, VAL > *_P, INDEX offset=0) const
 [取得] 複数要素取り出し. [詳解]
 
TNB::CPairT< KEY, VAL > GetEx (INDEX index) const
 [取得] 要素の取得. [詳解]
 
CConstKeysAdapter GetKeysAdapter (void) const
 [取得] キーのみの参照アダプタ取得. [詳解]
 
virtual size_t GetSize (void) const
 [取得] 要素数取得 [詳解]
 
VAL * GetValuePtr (INK key)
 [取得] 値アドレス取得. [詳解]
 
const VAL * GetValuePtr (INK key) const
 [取得] 値アドレス取得. [詳解]
 
CConstValuesAdapter GetValuesAdapter (void) const
 [取得] 値のみの参照アダプタ取得. [詳解]
 
bool HasKey (INK key) const
 [確認] キー有無 [詳解]
 
virtual bool Insert (INDEX index, const TNB::CPairT< KEY, VAL > &t)
 [追加] 要素一つ挿入. [詳解]
 
virtual bool InsertEx (INDEX index, const TNB::CPairT< KEY, VAL > &t)
 [追加] 要素一つ挿入. [詳解]
 
bool IsEmpty (void) const
 [確認] 要素の有無確認. [詳解]
 
virtual bool IsEqual (const IConstCollectionT< TNB::CPairT< KEY, VAL > > &c) const
 [確認] 比較. [詳解]
 
bool IsInRange (INDEX index) const
 [確認] INDEXの有効確認. [詳解]
 
virtual bool Lock (DWORD dwTime=INFINITE) const
 [排他] ロック [詳解]
 
bool Lookup (INK key, VAL &_rValue) const
 [取得] キーに対する値取得 [詳解]
 
 operator size_t (void) const
 [取得] 要素数取得. [詳解]
 
bool operator!= (const TNB::IConstCollectionT< TNB::CPairT< KEY, VAL > > &t) const
 [確認] 比較 [詳解]
 
INT_PTR operator- (const TNB::IConstCollectionT< TNB::CPairT< KEY, VAL > > &t) const
 [確認] 比較 [詳解]
 
bool operator< (const TNB::IConstCollectionT< TNB::CPairT< KEY, VAL > > &t) const
 [確認] 比較 [詳解]
 
bool operator<= (const TNB::IConstCollectionT< TNB::CPairT< KEY, VAL > > &t) const
 [確認] 比較 [詳解]
 
CMapToperator= (const CMapT &other)
 [代入] コピーオペレータ [詳解]
 
bool operator== (const TNB::IConstCollectionT< TNB::CPairT< KEY, VAL > > &t) const
 [確認] 比較 [詳解]
 
bool operator> (const TNB::IConstCollectionT< TNB::CPairT< KEY, VAL > > &t) const
 [確認] 比較 [詳解]
 
bool operator>= (const TNB::IConstCollectionT< TNB::CPairT< KEY, VAL > > &t) const
 [確認] 比較 [詳解]
 
VAL & operator[] (INK key)
 [取得] キーに対する値の参照 [詳解]
 
const VAL & operator[] (INK key) const
 [取得] キーに対する値の参照 [詳解]
 
void push_back (const TNB::CPairT< KEY, VAL > &t)
 [反復] 最後に追加 [詳解]
 
virtual CPairRef (INDEX index)
 [取得] 要素の参照取得. [詳解]
 
virtual bool Remove (INDEX index)
 [削除] キーと値一つ削除. [詳解]
 
virtual bool RemoveAll (void)
 [削除] すべてのキーと値を削除 [詳解]
 
virtual size_t RemoveElements (INDEX index, size_t size=0)
 [削除] 要素削除. [詳解]
 
bool RemoveEx (INDEX index)
 [削除] 要素一つ削除. [詳解]
 
bool RemoveKey (INK key)
 [削除] キーと値を削除 [詳解]
 
virtual void Serialize (ISerializer &_sr) const
 [処理] シリアライズ [詳解]
 
virtual bool Set (INDEX index, const CPair &t)
 [設定] 要素の設定. [詳解]
 
virtual size_t SetElements (size_t size, const TNB::CPairT< KEY, VAL > *P=NULL)
 [設定] 複数要素設定. [詳解]
 
bool SetEx (INDEX index, const TNB::CPairT< KEY, VAL > &t)
 [設定] 要素の設定. [詳解]
 
void SetIncrementSize (size_t size)
 [設定] 余白サイズ [詳解]
 
void SetKey (INK key, const VAL &newValue)
 [設定] キーに対する値設定 [詳解]
 
virtual bool SetSize (size_t size)
 [操作] サイズ指定. [詳解]
 
bool Shuffle (int iDepth=1)
 [操作] シャッフル. [詳解]
 
bool Sort (bool boIsReverse=false, bool boIsBubble=false)
 [操作] ソート. [詳解]
 
bool Sort (const IComparatorT< TNB::CPairT< KEY, VAL > > &comparator, bool boIsReverse=false, bool boIsBubble=false)
 [操作] ソート. [詳解]
 
virtual void Swap (INDEX index1, INDEX index2)
 [設定] 要素の入れ替え. [詳解]
 
size_t TrimBottom (const TNB::CPairT< KEY, VAL > &t)
 [処理] 末尾トリム. [詳解]
 
size_t TrimBottom (const TNB::CPairT< KEY, VAL > &t, const IComparatorT< TNB::CPairT< KEY, VAL > > &comparator)
 [処理] 末尾トリム. [詳解]
 
virtual void Unlock (void) const
 [排他] アンロック [詳解]
 
virtual ~CMapT (void)
 デストラクタ [詳解]
 

詳解

template<typename KEY, typename VAL, typename INK = KEY>
class TNB::CMapT< KEY, VAL, INK >

マップ型情報管理テンプレート

一意なキーに値を割り当ててコレクションすることができます。
キーで値を取り出したり削除することができます。
覚え書き
At()Set() など、 CPairT 型で、直接アクセスすると、 同Keyが2つ以上存在するMAPも出来てしまいますのでご注意ください。
KEY の一覧を作成する EnumKeys() があります。 参照だけであれば、 GetKeysAdapter() などで CConstKeysAdapter CConstValuesAdapter を 作成し、アクセスすることも出来ます。
注意
現在 STL の map と違い、格納時にキーによるソートしていません。
引数
KEYキーとする型。クラスの場合コピー機能、比較機能( IComparableT か、引き算)が必須。
VAL値とする型。クラスの場合コピー機能が必須。
INKキーとする型の入力型。省略可能。
参照
IConstCollectionT を実装しています。
ICollectionT を実装しています。
覚え書き
ICollectionT の TYP は CPairT<KEY,VAL> になります。
必要ファイル
TnbMap.h
日付
06/01/01 新規
06/04/21 ICollectionT 実装
06/04/27 INKパラメータ追加。キーの有無チェックメソッド、追加。
06/05/15 Cloneを廃止。
06/06/28 GetKeysAdapter() , GetValuesAdapter() 追加。
06/08/01 GetConstPointer/GetPointerに依存しないつくりに変更。
06/08/11 Element() を At() に改名。ReferElementPtr() を廃止。
06/09/12 SetSize()必ず失敗するようにした。
07/03/15 index,size管理を unsignedに変更。
12/05/22 Append() の処理を追加。
12/10/19 IsEqual() を専用に実装。

TnbMap.h65 行目に定義があります。

型定義メンバ詳解

◆ CPair

typedef TNB::CPairT<KEY,VAL> CPair

ペア型 定義

TnbMap.h71 行目に定義があります。

構築子と解体子

◆ CMapT() [1/2]

CMapT ( size_t  size = 0)
explicit

コンストラクタ

覚え書き
指定のメモリ確保時の追加サイズを設定します。
データは保持しません
引数
sizeメモリ確保時の追加サイズ。SetIncrementSize() と同じです。

TnbMap.h263 行目に定義があります。

◆ CMapT() [2/2]

CMapT ( const CMapT< KEY, VAL, INK > &  map)

コピーコンストラクタ

引数
mapコピー元

TnbMap.h271 行目に定義があります。

◆ ~CMapT()

virtual ~CMapT ( void  )
virtual

デストラクタ

TnbMap.h276 行目に定義があります。

関数詳解

◆ Add()

virtual INDEX Add ( const CPair t)
virtual

[追加] キーと値追加.

すでにキーがある場合、値のみ変更します。

引数
t要素
戻り値
常に0。 追加したINDEXは返りません。

ICollectionT< TNB::CPairT< KEY, VAL > >を実装しています。

TnbMap.h392 行目に定義があります。

◆ AddElements()

virtual size_t AddElements ( size_t  size,
const TNB::CPairT< KEY, VAL > *  P = NULL 
)
virtualinherited

[追加] 複数要素追加.

最後に追加します。

引数
size追加するデータの数。
P追加するデータ列のポインタ。省略すると TYP()が代入されます。
戻り値
INVALID_SIZEエラー。
それ以外追加した数。

TnbCollection.h1174 行目に定義があります。

◆ AddEx()

INDEX AddEx ( const TNB::CPairT< KEY, VAL > &  t)
inherited

[追加] 要素一つ追加.

引数
t要素。
戻り値
INVALID_INDEX失敗。
上記以外追加したINDEX。

TnbCollection.h1033 行目に定義があります。

◆ Append()

virtual size_t Append ( const IConstCollectionT< CPair > &  c)
virtual

[追加] 追加.

指定のデータを追加します。

覚え書き
同じキーがある場合、追加する c に含まれる値のほうが有効になります。
引数
c追加するデータ
戻り値
INVALID_SIZEエラー。
それ以外追加した数。

ICollectionT< TNB::CPairT< KEY, VAL > >を再実装しています。

TnbMap.h406 行目に定義があります。

◆ At()

virtual const CPair & At ( INDEX  index) const
virtual

[取得] 要素の参照取得.

覚え書き
非スレッドセーブメソッドです。 複数のスレッドからアクセスがある場合、 Lock() / Unlock() を使用してください。
引数
indexインデックス
戻り値
一時的な参照
例外
CIndexOutOfBoundsExceptionインデックスが範囲外であることを示すためにスローされます。

IConstCollectionT< TNB::CPairT< KEY, VAL > >を実装しています。

TnbMap.h354 行目に定義があります。

◆ begin() [1/2]

iterator begin ( void  )
inherited

[反復] 先頭iterator.

先頭要素を指す反復子を取得

戻り値
iterator

TnbCollection.h938 行目に定義があります。

◆ begin() [2/2]

const_iterator begin ( void  ) const
inherited

[反復] 先頭const_iterator.

先頭要素を指す反復子を取得

戻り値
const_iterator

TnbCollection.h924 行目に定義があります。

◆ Compare()

virtual INT_PTR Compare ( const IConstCollectionT< TNB::CPairT< KEY, VAL > > &  c) const
virtualinherited

[確認] 比較.

コンパレータ( IComparatorT のサブクラス)を使用して、全要素を比較します。

引数
c比較対象
戻り値
自分は c と同じ
1以上自分は c より大きい
0未満自分は c より小さい

IComparableT< TNB::IConstCollectionT< TNB::CPairT< KEY, VAL > > >を実装しています。

TnbCollection.h595 行目に定義があります。

◆ Copy()

virtual size_t Copy ( const IConstCollectionT< TNB::CPairT< KEY, VAL > > &  c)
virtualinherited

[設定] コピー.

管理しているバッファを開放し、指定のデータをコピーします。

覚え書き
コピー元の範囲を限定したい場合、元データに CConstOffsetAdapterT を使用します。
一度別メモリにコピーしています。そのため、同じオブジェクトでも対応可能です。
引数
cコピーするデータ
戻り値
INVALID_SIZEエラー。
それ以外複製した数。

TnbCollection.h1263 行目に定義があります。

◆ CopyElements()

virtual size_t CopyElements ( size_t  size,
const TNB::CPairT< KEY, VAL > *  P = NULL 
)
virtualinherited

[設定] コピー.

管理しているバッファを開放し、指定のデータをコピーします。

覚え書き
廃止予定です。 SetElements() を使用してください。
引数
sizeデータ長。
Pコピーする内容を指定。省略すると TYP()が代入されます。
戻り値
INVALID_SIZEエラー。
それ以外複製した数。

TnbCollection.h1232 行目に定義があります。

◆ Cull()

virtual size_t Cull ( const IChecker &  checker,
bool  boIsReverse = false 
)
virtualinherited

[削除] 間引き.

指定の条件に合わないもの(チェッカーの結果により)を削除します。

引数
checkerチェッカー
boIsReverse省略すると条件に一致を残します。 trueを指定すると条件不一致を残します。
戻り値
INVALID_SIZEエラー。
それ以外削除した数。

TnbCollection.h1290 行目に定義があります。

◆ Deserialize()

virtual void Deserialize ( const IDeserializer ds)
virtualinherited

[処理] デシリアライズ

引数
dsデシリアライザー。これからメンバの内容を取り出してください。
例外
CTnbException失敗時は、任意のスローの可能性があります。

IConstCollectionT< TNB::CPairT< KEY, VAL > >を再実装しています。

TnbCollection.h1355 行目に定義があります。

◆ end() [1/2]

iterator end ( void  )
inherited

[反復] 最後iterator.

最後要素の次を指す反復子を取得

戻り値
iterator

TnbCollection.h945 行目に定義があります。

◆ end() [2/2]

const_iterator end ( void  ) const
inherited

[反復] 最後const_iterator.

最後要素の次を指す反復子を取得

戻り値
const_iterator

TnbCollection.h931 行目に定義があります。

◆ EnumKeys()

CVectorT< KEY > EnumKeys ( void  ) const

[取得] キーの一覧

戻り値
キーのVector

TnbMap.h599 行目に定義があります。

◆ Find() [1/5]

INDEX Find ( const IChecker &  checker,
INDEX  startIndex = 0,
bool  boIsReverse = false 
) const
inherited

[検索] 条件一致要素の検索.

チェッカー( IChecker のサブクラス)を使用して、検索します。

覚え書き
範囲を限定したい場合、 CConstOffsetAdapterT を使用します。
引数
checkerチェッカー
startIndex検索開始インデックス。
boIsReverse省略すると条件に一致を探します。 trueを指定すると条件不一致を探します。
戻り値
INVALID_INDEX未発見
それ以外発見したインデックス

TnbCollection.h400 行目に定義があります。

◆ Find() [2/5]

INDEX Find ( const IConstCollectionT< TNB::CPairT< KEY, VAL > > &  t,
const IComparatorT< TNB::CPairT< KEY, VAL > > &  comparator,
INDEX  startIndex = 0 
) const
inherited

[検索] 指定配列の検索.

コンパレータ( IComparatorT のサブクラス)を使用して、検索します。

覚え書き
範囲を限定したい場合、 CConstOffsetAdapterT を使用します。
引数
t配列
comparatorコンパレーター
startIndex検索開始インデックス。
戻り値
INVALID_INDEX未発見
それ以外発見したインデックス

TnbCollection.h427 行目に定義があります。

◆ Find() [3/5]

INDEX Find ( const IConstCollectionT< TNB::CPairT< KEY, VAL > > &  t,
INDEX  startIndex = 0 
) const
inherited

[検索] 指定配列の検索.

IComparatorT::GetDefault() で得られるコンパレータを使用して検索します。

覚え書き
範囲を限定したい場合、 CConstOffsetAdapterT を使用します。
引数
t配列
startIndex検索開始インデックス。
戻り値
INVALID_INDEX未発見
それ以外発見したインデックス

TnbCollection.h467 行目に定義があります。

◆ Find() [4/5]

INDEX Find ( const TNB::CPairT< KEY, VAL > &  t,
const IComparatorT< TNB::CPairT< KEY, VAL > > &  comparator,
INDEX  startIndex = 0 
) const
inherited

[検索] 指定要素の検索.

コンパレータ( IComparatorT のサブクラス)を使用して、検索します。

覚え書き
範囲を限定したい場合、 CConstOffsetAdapterT を使用します。
引数
t要素
comparatorコンパレーター
startIndex検索開始インデックス。
戻り値
INVALID_INDEX未発見
それ以外発見したインデックス

TnbCollection.h482 行目に定義があります。

◆ Find() [5/5]

INDEX Find ( const TNB::CPairT< KEY, VAL > &  t,
INDEX  startIndex = 0 
) const
inherited

[検索] 指定要素の検索.

IComparatorT::GetDefault() で得られるコンパレータを使用して検索します。

覚え書き
範囲を限定したい場合、 CConstOffsetAdapterT を使用します。
引数
t要素
startIndex検索開始インデックス。
戻り値
INVALID_INDEX未発見
それ以外発見したインデックス

TnbCollection.h508 行目に定義があります。

◆ FindMax() [1/2]

INDEX FindMax ( const IComparatorT< TNB::CPairT< KEY, VAL > > &  comparator,
const TNB::CPairT< KEY, VAL > &  def 
) const
inherited

[検索] 要素の最大検索.

コンパレータ( IComparatorT のサブクラス)を使用して、比較検索します。

引数
comparatorコンパレーター
def最小値(初期値)
戻り値
INVALID_INDEX未発見
それ以外最大を持つインデックス

TnbCollection.h521 行目に定義があります。

◆ FindMax() [2/2]

INDEX FindMax ( const TNB::CPairT< KEY, VAL > &  def) const
inherited

[検索] 要素の最大検索.

IComparatorT::GetDefault() で得られるコンパレータを使用して比較検索します。

覚え書き
範囲を限定したい場合、 CConstOffsetAdapterT を使用します。
引数
def最小値(初期値)
戻り値
INVALID_INDEX未発見
それ以外最大を持つインデックス

TnbCollection.h545 行目に定義があります。

◆ FindMin() [1/2]

INDEX FindMin ( const IComparatorT< TNB::CPairT< KEY, VAL > > &  comparator,
const TNB::CPairT< KEY, VAL > &  def 
) const
inherited

[検索] 要素の最小検索.

コンパレータ( IComparatorT のサブクラス)を使用して、比較検索します。

引数
comparatorコンパレーター
def最大値(初期値)
戻り値
INVALID_INDEX未発見
それ以外最小を持つインデックス

TnbCollection.h558 行目に定義があります。

◆ FindMin() [2/2]

INDEX FindMin ( const TNB::CPairT< KEY, VAL > &  def) const
inherited

[検索] 要素の最小検索.

IComparatorT::GetDefault() で得られるコンパレータを使用して比較検索します。

覚え書き
範囲を限定したい場合、 CConstOffsetAdapterT を使用します。
引数
def最大値(初期値)
戻り値
INVALID_INDEX未発見
それ以外最小を持つインデックス

TnbCollection.h582 行目に定義があります。

◆ Get() [1/2]

virtual CPair Get ( INDEX  index) const
virtual

[取得] キーと値を取得.

0〜(GetSize()の戻り値未満) をインデックスとし、CPairT<KEY,VAL> 型で取得します。

覚え書き
非スレッドセーブメソッドです。 複数のスレッドからアクセスがある場合、 GetEx() を使用してください。
引数
indexインデックス
戻り値
内容
例外
CIndexOutOfBoundsExceptionインデックスが範囲外であることを示すためにスローされます。

IConstCollectionT< TNB::CPairT< KEY, VAL > >を再実装しています。

TnbMap.h341 行目に定義があります。

◆ Get() [2/2]

bool Get ( INDEX  index,
KEY &  _rKey,
VAL &  _rValue 
) const

[取得] キーと値を取得.

0〜(GetSize()の戻り値未満) をインデックスとし、キーと値を取り出します

引数
[in]index要素番号
[out]_rKeyキー
[out]_rValue
戻り値
true取得成功
false失敗(インデックスが範囲外)

TnbMap.h554 行目に定義があります。

◆ GetElements()

virtual size_t GetElements ( size_t  size,
TNB::CPairT< KEY, VAL > *  _P,
INDEX  offset = 0 
) const
virtualinherited

[取得] 複数要素取り出し.

引数
[in]size取り出すデータの数。
[out]_Pコピーするポインタ。size 分の領域がある必要があります。
[in]offset取り出し開始のインデックス。省略すると0。
戻り値
コピーした数

TnbCollection.h322 行目に定義があります。

◆ GetEx()

TNB::CPairT< KEY, VAL > GetEx ( INDEX  index) const
inherited

[取得] 要素の取得.

引数
indexインデックス
戻り値
内容
例外
CIndexOutOfBoundsExceptionインデックスが範囲外であることを示すためにスローされます。

TnbCollection.h309 行目に定義があります。

◆ GetKeysAdapter()

CConstKeysAdapter GetKeysAdapter ( void  ) const

[取得] キーのみの参照アダプタ取得.

キーのみ参照アダプタクラスを作成します。

戻り値
CConstKeysAdapter

TnbMap.h649 行目に定義があります。

◆ GetSize()

virtual size_t GetSize ( void  ) const
virtual

[取得] 要素数取得

戻り値
要素数

IConstCollectionT< TNB::CPairT< KEY, VAL > >を実装しています。

TnbMap.h327 行目に定義があります。

◆ GetValuePtr() [1/2]

VAL * GetValuePtr ( INK  key)

[取得] 値アドレス取得.

キーに対する、値のポインタを取り出します

引数
keyキー
戻り値
NULL以外値アドレス
NULL失敗(キーなし)

TnbMap.h539 行目に定義があります。

◆ GetValuePtr() [2/2]

const VAL * GetValuePtr ( INK  key) const

[取得] 値アドレス取得.

キーに対する、値のポインタを取り出します

引数
keyキー
戻り値
NULL以外値アドレス
NULL失敗(キーなし)

TnbMap.h526 行目に定義があります。

◆ GetValuesAdapter()

CConstValuesAdapter GetValuesAdapter ( void  ) const

[取得] 値のみの参照アダプタ取得.

値のみ参照アダプタクラスを作成します。

戻り値
CConstValuesAdapter

TnbMap.h659 行目に定義があります。

◆ HasKey()

bool HasKey ( INK  key) const

[確認] キー有無

引数
keyキー
戻り値
true存在する
false存在しない

TnbMap.h589 行目に定義があります。

◆ Insert()

virtual bool Insert ( INDEX  index,
const TNB::CPairT< KEY, VAL > &  t 
)
virtualinherited

[追加] 要素一つ挿入.

指定のインデックスに要素を追加します。

覚え書き
非スレッドセーブメソッドです。 複数のスレッドからアクセスがある場合、 InsertEx() を使用してください。
引数
indexインデックス
t要素
戻り値
true挿入成功
false失敗(インデックス無効)

TnbCollection.h1049 行目に定義があります。

◆ InsertEx()

virtual bool InsertEx ( INDEX  index,
const TNB::CPairT< KEY, VAL > &  t 
)
virtualinherited

[追加] 要素一つ挿入.

指定のインデックスに要素を追加します。

引数
indexインデックス
t要素
戻り値
true挿入成功
false失敗(インデックス無効)

TnbCollection.h1077 行目に定義があります。

◆ IsEmpty()

bool IsEmpty ( void  ) const
inherited

[確認] 要素の有無確認.

覚え書き
GetSize()の戻り値が0か否かでチェックしています。
戻り値
true要素なし
false要素有り

TnbCollection.h346 行目に定義があります。

◆ IsEqual()

virtual bool IsEqual ( const IConstCollectionT< TNB::CPairT< KEY, VAL > > &  c) const
virtual

[確認] 比較.

コンパレータ( IComparatorT のサブクラス)を使用して、全要素を比較します。

引数
c比較対象
戻り値
true自分は c と同じ
false自分は c と異なる

IConstCollectionT< TNB::CPairT< KEY, VAL > >を再実装しています。

TnbMap.h614 行目に定義があります。

◆ IsInRange()

bool IsInRange ( INDEX  index) const
inherited

[確認] INDEXの有効確認.

覚え書き
GetSize()の戻り値を使用してチェックしています。
引数
indexインデックス
戻り値
true指定Indexは有効。
false指定Indexは無効(範囲外)。

TnbCollection.h358 行目に定義があります。

◆ Lock()

virtual bool Lock ( DWORD  dwTime = INFINITE) const
virtual

[排他] ロック

覚え書き
Lock/Unlockは情報の排他のために使用します。スレッドセーブに するために、一連の情報操作前にLockし操作終了後にUnlockする必要が あります(単発の操作時は大丈夫です)。
引数
dwTimeダミーです。省略してください。
戻り値
常にtrue。

ISynchronizedを実装しています。

TnbMap.h299 行目に定義があります。

◆ Lookup()

bool Lookup ( INK  key,
VAL &  _rValue 
) const

[取得] キーに対する値取得

引数
[in]keyキー
[out]_rValue
戻り値
true値取得成功
false失敗(キーがない)

TnbMap.h574 行目に定義があります。

◆ operator size_t()

operator size_t ( void  ) const
inherited

[取得] 要素数取得.

戻り値
要素数

TnbCollection.h268 行目に定義があります。

◆ operator!=()

bool operator!= ( const TNB::IConstCollectionT< TNB::CPairT< KEY, VAL > > &  t) const
inherited

[確認] 比較

引数
t比較対象
戻り値
true自分は t と異なる
false自分は t と同じ

TnbComparable.h98 行目に定義があります。

◆ operator-()

INT_PTR operator- ( const TNB::IConstCollectionT< TNB::CPairT< KEY, VAL > > &  t) const
inherited

[確認] 比較

引数
t比較対象
戻り値
自分は t と同じ
1以上自分は t より大きい
0未満自分は t より小さい

TnbComparable.h82 行目に定義があります。

◆ operator<()

bool operator< ( const TNB::IConstCollectionT< TNB::CPairT< KEY, VAL > > &  t) const
inherited

[確認] 比較

引数
t比較対象
戻り値
true自分は t より小さい
false自分は t と同じか大きい

TnbComparable.h106 行目に定義があります。

◆ operator<=()

bool operator<= ( const TNB::IConstCollectionT< TNB::CPairT< KEY, VAL > > &  t) const
inherited

[確認] 比較

引数
t比較対象
戻り値
true自分は t と同じか小さい
false自分は t より大きい

TnbComparable.h114 行目に定義があります。

◆ operator=()

CMapT & operator= ( const CMapT< KEY, VAL, INK > &  other)

[代入] コピーオペレータ

引数
otherコピー元
戻り値
自分の参照

TnbMap.h285 行目に定義があります。

◆ operator==()

bool operator== ( const TNB::IConstCollectionT< TNB::CPairT< KEY, VAL > > &  t) const
inherited

[確認] 比較

引数
t比較対象
戻り値
true自分は t と同じ
false自分は t と異なる

TnbComparable.h90 行目に定義があります。

◆ operator>()

bool operator> ( const TNB::IConstCollectionT< TNB::CPairT< KEY, VAL > > &  t) const
inherited

[確認] 比較

引数
t比較対象
戻り値
true自分は t より大きい
false自分は t と同じか小さい

TnbComparable.h122 行目に定義があります。

◆ operator>=()

bool operator>= ( const TNB::IConstCollectionT< TNB::CPairT< KEY, VAL > > &  t) const
inherited

[確認] 比較

引数
t比較対象
戻り値
true自分は t と同じか大きい
false自分は t より小さい

TnbComparable.h130 行目に定義があります。

◆ operator[]() [1/2]

VAL & operator[] ( INK  key)

[取得] キーに対する値の参照

覚え書き
非スレッドセーブメソッドです。 複数のスレッドからアクセスがある場合、 Lock() / Unlock() を使用してください。
キーがない場合、新規に追加します。
引数
keyキー
戻り値
VALの参照(操作すると、MAP内の情報も変化します)。

TnbMap.h469 行目に定義があります。

◆ operator[]() [2/2]

const VAL & operator[] ( INK  key) const

[取得] キーに対する値の参照

覚え書き
非スレッドセーブメソッドです。 複数のスレッドからアクセスがある場合、 Lock() / Unlock() を使用してください。
キーがない場合、新規に追加します。
引数
keyキー
戻り値
VALの参照(操作すると、MAP内の情報も変化します)。
例外
CEmptyExceptionキーが存在しないことを示すためにスローされます。

TnbMap.h491 行目に定義があります。

◆ push_back()

void push_back ( const TNB::CPairT< KEY, VAL > &  t)
inherited

[反復] 最後に追加

引数
t要素

TnbCollection.h951 行目に定義があります。

◆ Ref()

virtual CPair & Ref ( INDEX  index)
virtual

[取得] 要素の参照取得.

覚え書き
非スレッドセーブメソッドです。 複数のスレッドからアクセスがある場合、 Lock() / Unlock() を使用してください。
引数
indexインデックス
戻り値
一時的な参照
例外
CIndexOutOfBoundsExceptionインデックスが範囲外であることを示すためにスローされます。

ICollectionT< TNB::CPairT< KEY, VAL > >を実装しています。

TnbMap.h367 行目に定義があります。

◆ Remove()

virtual bool Remove ( INDEX  index)
virtual

[削除] キーと値一つ削除.

0〜(GetSize()の戻り値未満) をインデックスとし処理します。

覚え書き
非スレッドセーブメソッドです。 複数のスレッドからアクセスがある場合、 RemoveEx() を使用してください。
引数
indexインデックス
戻り値
true削除成功
false失敗

ICollectionT< TNB::CPairT< KEY, VAL > >を実装しています。

TnbMap.h425 行目に定義があります。

◆ RemoveAll()

virtual bool RemoveAll ( void  )
virtual

[削除] すべてのキーと値を削除

戻り値
常にtrue

ICollectionT< TNB::CPairT< KEY, VAL > >を再実装しています。

TnbMap.h434 行目に定義があります。

◆ RemoveElements()

virtual size_t RemoveElements ( INDEX  index,
size_t  size = 0 
)
virtualinherited

[削除] 要素削除.

引数
indexインデックス
size削除数。省略すると0。0を指定するとそれ以降全部削除します。
戻り値
INVALID_SIZEエラー。
それ以外削除した数。

TnbCollection.h1112 行目に定義があります。

◆ RemoveEx()

bool RemoveEx ( INDEX  index)
inherited

[削除] 要素一つ削除.

引数
indexインデックス
戻り値
falseエラー。
true成功。

TnbCollection.h1099 行目に定義があります。

◆ RemoveKey()

bool RemoveKey ( INK  key)

[削除] キーと値を削除

引数
keyキー
戻り値
true成功
false失敗(キーがない)

TnbMap.h504 行目に定義があります。

◆ Serialize()

virtual void Serialize ( ISerializer _sr) const
virtualinherited

[処理] シリアライズ

引数
[out]_srシリアライザー。
例外
CTnbException失敗時は、任意のスローの可能性があります。

ISerializableを実装しています。

TnbCollection.h368 行目に定義があります。

◆ Set()

virtual bool Set ( INDEX  index,
const CPair t 
)
virtual

[設定] 要素の設定.

覚え書き
非スレッドセーブメソッドです。 複数のスレッドからアクセスがある場合、 SetEx() を使用してください。
引数
indexインデックス
t内容
戻り値
true設定成功
false失敗

ICollectionT< TNB::CPairT< KEY, VAL > >を実装しています。

TnbMap.h381 行目に定義があります。

◆ SetElements()

virtual size_t SetElements ( size_t  size,
const TNB::CPairT< KEY, VAL > *  P = NULL 
)
virtualinherited

[設定] 複数要素設定.

管理しているバッファを開放し、指定のデータをコピーします。

引数
sizeデータ長。
Pコピーする内容を指定。省略すると TYP()が代入されます。
戻り値
INVALID_SIZEエラー。
それ以外複製した数。

TnbCollection.h1245 行目に定義があります。

◆ SetEx()

bool SetEx ( INDEX  index,
const TNB::CPairT< KEY, VAL > &  t 
)
inherited

[設定] 要素の設定.

引数
indexインデックス
t内容
戻り値
true設定成功
false失敗

TnbCollection.h1011 行目に定義があります。

◆ SetIncrementSize()

void SetIncrementSize ( size_t  size)

[設定] 余白サイズ

覚え書き
新規にメモリを確保したとき、必要なサイズよりいくつ多く 確保しておくか、という値を設定できます。
通常は自動です。
コピーではこの値は引き継がれません。
引数
sizeメモリ確保時の追加サイズ。マイナスなら自動です。

TnbMap.h318 行目に定義があります。

◆ SetKey()

void SetKey ( INK  key,
const VAL &  newValue 
)

[設定] キーに対する値設定

覚え書き
キーがない場合、新規に追加します。
引数
keyキー
newValue

TnbMap.h455 行目に定義があります。

◆ SetSize()

virtual bool SetSize ( size_t  size)
virtual

[操作] サイズ指定.

引数
sizeサイズ
戻り値
必ず false (失敗)。

ICollectionT< TNB::CPairT< KEY, VAL > >を再実装しています。

TnbMap.h444 行目に定義があります。

◆ Shuffle()

bool Shuffle ( int  iDepth = 1)
inherited

[操作] シャッフル.

要素の並びをシャッフルします。

覚え書き
範囲を限定したい場合、 COffsetAdapterT を使用します。
引数
iDepthシャッフルを何回行うかを指定できます。数やればバラけるというものも有りません。 省略すると1回です。
戻り値
true成功
false失敗

TnbCollection.h1434 行目に定義があります。

◆ Sort() [1/2]

bool Sort ( bool  boIsReverse = false,
bool  boIsBubble = false 
)
inherited

[操作] ソート.

IComparatorT::GetDefault() で得られるコンパレータを使用して比較します。

覚え書き
範囲を限定したい場合、 COffsetAdapterT を使用します。
引数
boIsReverse省略すると小さい順にソートします。 trueを指定すると大きい順位ソートします。
boIsBubbletrueをバブルソートアルゴリズムを使います。 通常はクイックソートアルゴリズムです。
戻り値
true成功
false失敗

TnbCollection.h1420 行目に定義があります。

◆ Sort() [2/2]

bool Sort ( const IComparatorT< TNB::CPairT< KEY, VAL > > &  comparator,
bool  boIsReverse = false,
bool  boIsBubble = false 
)
inherited

[操作] ソート.

コンパレータ( IComparatorT のサブクラス)を使用して、比較します。

覚え書き
範囲を限定したい場合、 COffsetAdapterT を使用します。
引数
comparatorコンパレーター
boIsReverse省略すると小さい順にソートします。 trueを指定すると大きい順位ソートします。
boIsBubbletrueをバブルソートアルゴリズムを使います。 通常はクイックソートアルゴリズムです。
戻り値
true成功
false失敗

TnbCollection.h1385 行目に定義があります。

◆ Swap()

virtual void Swap ( INDEX  index1,
INDEX  index2 
)
virtualinherited

[設定] 要素の入れ替え.

引数
index1インデックス1
index2インデックス2
例外
CIndexOutOfBoundsExceptionインデックスが範囲外であることを示すためにスローされます。

TnbCollection.h1155 行目に定義があります。

◆ TrimBottom() [1/2]

size_t TrimBottom ( const TNB::CPairT< KEY, VAL > &  t)
inherited

[処理] 末尾トリム.

覚え書き
保持する情報に対し処理します。
引数
tトリム対象の情報。
戻り値
残った数。

TnbCollection.h1498 行目に定義があります。

◆ TrimBottom() [2/2]

size_t TrimBottom ( const TNB::CPairT< KEY, VAL > &  t,
const IComparatorT< TNB::CPairT< KEY, VAL > > &  comparator 
)
inherited

[処理] 末尾トリム.

覚え書き
保持する情報に対し処理します。
引数
tトリム対象の情報。
comparatorコンパレータ。
戻り値
残った数。

TnbCollection.h1472 行目に定義があります。

◆ Unlock()

virtual void Unlock ( void  ) const
virtual

[排他] アンロック

ISynchronizedを実装しています。

TnbMap.h305 行目に定義があります。