TNB Library
|
INDEXアダプタテンプレート [詳解]
#include <TnbCollectionAdapter.h>
公開メンバ関数 | |
virtual const TYP & | At (INDEX index) const |
[取得] 要素の参照取得. [詳解] | |
const_iterator | begin (void) const |
[反復] 先頭const_iterator. [詳解] | |
CIndexAdapterT (const IConstCollectionT< TYP > *c) | |
コンストラクタ [詳解] | |
virtual INT_PTR | Compare (const IConstCollectionT< TYP > &c) const |
[確認] 比較. [詳解] | |
size_t | Cull (const IChecker &checker, bool boIsReverse=false) |
[削除] 間引き. [詳解] | |
virtual void | Deserialize (const IDeserializer &ds) |
[処理] デシリアライズ [詳解] | |
const_iterator | end (void) const |
[反復] 最後const_iterator. [詳解] | |
INDEX | Find (const IChecker &checker, INDEX startIndex=0, bool boIsReverse=false) const |
[検索] 条件一致要素の検索. [詳解] | |
INDEX | Find (const IConstCollectionT< TYP > &t, const IComparatorT< TYP > &comparator, INDEX startIndex=0) const |
[検索] 指定配列の検索. [詳解] | |
INDEX | Find (const IConstCollectionT< TYP > &t, INDEX startIndex=0) const |
[検索] 指定配列の検索. [詳解] | |
INDEX | Find (const TYP &t, const IComparatorT< TYP > &comparator, INDEX startIndex=0) const |
[検索] 指定要素の検索. [詳解] | |
INDEX | Find (const TYP &t, INDEX startIndex=0) const |
[検索] 指定要素の検索. [詳解] | |
INDEX | FindMax (const IComparatorT< TYP > &comparator, const TYP &def) const |
[検索] 要素の最大検索. [詳解] | |
INDEX | FindMax (const TYP &def) const |
[検索] 要素の最大検索. [詳解] | |
INDEX | FindMin (const IComparatorT< TYP > &comparator, const TYP &def) const |
[検索] 要素の最小検索. [詳解] | |
INDEX | FindMin (const TYP &def) const |
[検索] 要素の最小検索. [詳解] | |
virtual TYP | Get (INDEX index) const |
[取得] 要素の取得. [詳解] | |
virtual size_t | GetElements (size_t size, TYP *_P, INDEX offset=0) const |
[取得] 複数要素取り出し. [詳解] | |
TYP | GetEx (INDEX index) const |
[取得] 要素の取得. [詳解] | |
INDEX | GetRawIndex (INDEX index) const |
[取得] オリジナルIndex取得. [詳解] | |
virtual size_t | GetSize (void) const |
[取得] 要素数取得 [詳解] | |
bool | IsEmpty (void) const |
[確認] 要素の有無確認. [詳解] | |
virtual bool | IsEqual (const IConstCollectionT< TYP > &c) const |
[確認] 比較. [詳解] | |
bool | IsInRange (INDEX index) const |
[確認] INDEXの有効確認. [詳解] | |
virtual bool | Lock (DWORD dwTime=INFINITE) const |
[排他] ロック [詳解] | |
operator size_t (void) const | |
[取得] 要素数取得. [詳解] | |
bool | operator!= (const TNB::IConstCollectionT< TYP > &t) const |
[確認] 比較 [詳解] | |
INT_PTR | operator- (const TNB::IConstCollectionT< TYP > &t) const |
[確認] 比較 [詳解] | |
bool | operator< (const TNB::IConstCollectionT< TYP > &t) const |
[確認] 比較 [詳解] | |
bool | operator<= (const TNB::IConstCollectionT< TYP > &t) const |
[確認] 比較 [詳解] | |
bool | operator== (const TNB::IConstCollectionT< TYP > &t) const |
[確認] 比較 [詳解] | |
bool | operator> (const TNB::IConstCollectionT< TYP > &t) const |
[確認] 比較 [詳解] | |
bool | operator>= (const TNB::IConstCollectionT< TYP > &t) const |
[確認] 比較 [詳解] | |
bool | Remove (INDEX index) |
[削除] 要素一つ削除. [詳解] | |
void | ResetIndex (void) |
[操作] リセットインデックス. [詳解] | |
virtual void | Serialize (ISerializer &_sr) const |
[処理] シリアライズ [詳解] | |
bool | Sort (bool boIsReverse=false, bool boIsBubble=false) |
[操作] ソート. [詳解] | |
bool | Sort (const IComparatorT< TYP > &comparator, bool boIsReverse=false, bool boIsBubble=false) |
[操作] ソート. [詳解] | |
void | Swap (INDEX index1, INDEX index2) |
[設定] 要素の入れ替え [詳解] | |
virtual void | Unlock (void) const |
[排他] アンロック [詳解] | |
virtual | ~CIndexAdapterT (void) |
デストラクタ [詳解] | |
INDEXアダプタテンプレート
IConstCollectionT を持つコレクションを一時的に並び替えたい時にこのアダプタを使います。 内部でIndex変換テーブルを持ち、要素の Swap や、要素の削除や添削を行っても、実体は変化せず、 このIndex変換テーブルのみ操作します。 実体は、コンストラクタで渡したものなので、本インスタンスが有効の間、実体を消さないようにします。 また、実体のサイズも変更しないようにしてください。
TYP | 保持する型(コピー可能の型に限る) |
TnbCollectionAdapter.h の 607 行目に定義があります。
CIndexAdapterT | ( | const IConstCollectionT< TYP > * | c | ) |
|
virtual |
デストラクタ
TnbCollectionAdapter.h の 679 行目に定義があります。
|
virtual |
[取得] 要素の参照取得.
index | インデックス |
CIndexOutOfBoundsException | インデックスが範囲外であることを示すためにスローされます。 |
IConstCollectionT< TYP >を実装しています。
TnbCollectionAdapter.h の 740 行目に定義があります。
|
inherited |
|
virtualinherited |
[確認] 比較.
コンパレータ( IComparatorT のサブクラス)を使用して、全要素を比較します。
c | 比較対象 |
0 | 自分は c と同じ |
1以上 | 自分は c より大きい |
0未満 | 自分は c より小さい |
IComparableT< TNB::IConstCollectionT< TYP > >を実装しています。
TnbCollection.h の 595 行目に定義があります。
size_t Cull | ( | const IChecker & | checker, |
bool | boIsReverse = false |
||
) |
[削除] 間引き.
指定のデータの条件に合わないもの(チェッカーの結果により)を削除します。
checker | チェッカー |
boIsReverse | 省略すると条件に一致を残します。 trueを指定すると条件不一致を残します。 |
削除した数。 |
TnbCollectionAdapter.h の 806 行目に定義があります。
|
virtualinherited |
[処理] デシリアライズ
ds | デシリアライザー。 |
CNotSupportException | サポートしていないことを示すためにスローされます。 |
ISerializableを実装しています。
CAttributedVectorT< TYP, ATT >, CAttributedVectorT< BYTE, BYTE >, ICollectionT< TYP >, ICollectionT< bool >, ICollectionT< TNB::CPairT< T, T > >, ICollectionT< TNB::CPairT< KEY, VAL > >, ICollectionT< BYTE >, ICollectionT< DWORD >, ICollectionT< TNB::CArrayPtrHandleT< TYP > >, ICollectionT< WORD >, ICollectionT< TNB::CVectorT >, ICollectionT< TValue >, ICollectionT< CVectorT< BYTE > >, ICollectionT< TNB::CPairT< TNB::CStrT, TNB::CSingleSetT< TNB::CStrT > > >, ICollectionT< TNB::CPairT >, ICollectionT< CStr >, ICollectionT< TParam >, ICollectionT< TNB::CArrayPtrHandleT< TParam > >, ICollectionT< TCHAR >, ICollectionT< TNB::CPairT< PROPID, CTagInfo > >, ICollectionT< TNB::CGrid::TFieldInfo >, ICollectionT< TNB::CPairT< int, HICON > >, ICollectionT< HICON >, ICollectionT< TNB::CMailAddress >, ICollectionT< CAscii >, ICollectionT< TNB::CPairT< TNB::CStrT, CVectorT< BYTE > > >, ICollectionT< TNB::CPairT< CAscii, CAscii > >, ICollectionT< TNB::CMultiFontTextDrawer::TPart >, ICollectionT< POINT >, ICollectionT< TNB::CPointerHandleT< CCursorManager > >, ICollectionT< TNB::CNmea0183::TGpGsv >, ICollectionT< TNB::CPacketCommander::CInner::TTask * >, ICollectionT< TNB::CPointerHandleT< TYP > >, ICollectionT< TNB::CListQueueT< TYP > >, ICollectionT< TInfo >, ICollectionT< TNB::CStrT< TYP > >, ICollectionT< TNB::CPointerHandleT< TNB::CShapeFile::IRecordContent > >, ICollectionT< SOCKET >, ICollectionT< TNB::CPairT< TNB::CStrT, TNB::CMapT > >, ICollectionT< TNB::CPairT< DWORD, TYP > >, ICollectionT< TYP * >, ICollectionT< TNB::CPointerHandleT< TBindWork > >, ICollectionT< CFileInfoArray >, ICollectionT< TNB::CTmlDocuments::TFileInfo::TFunc >, ICollectionT< TFuncInfo >, ICollectionT< EKind >, ICollectionT< TNB::CGrammarAnalyzerT >, ICollectionT< INDEX >, ICollectionT< CVaVaVector >, ICollectionT< CArVaVector >, ICollectionT< CTmlValue >, ICollectionT< char >, ICollectionT< TNB::CPairT< FOURCC, TChunkMap > >, ICollectionT< TNB::CPairT< FOURCC, TNB::CStrT > >, ICollectionT< EAttr >, ICollectionT< TParam * >, ICollectionT< TNB::MFC::CColorfulListBox::CColor::TParam >, ICollectionT< CPointerHandleT< IDrawable > >, ICollectionT< UINT >, ICollectionT< CDrawersVector >, ICollectionT< IDrawable::Ptr >, ICollectionT< TNB::CPointerHandleT< TNB::MFC::CDrawingSubMenu > >, ICollectionT< TNB::CPairT< HTREEITEM, CPointerHandleT< IDrawable > > >, ICollectionT< CArrayPtrHandleT< TCHAR > >, ICollectionT< TNB::CPairT< COLORREF, CPointerHandleT< TPointInfo > > >, CListT< TYP, ATT >, CListT< TNB::CListQueueT< TYP > > (計67項目)で再実装されています。
TnbCollection.h の 384 行目に定義があります。
|
inherited |
|
inherited |
[検索] 条件一致要素の検索.
チェッカー( IChecker のサブクラス)を使用して、検索します。
checker | チェッカー |
startIndex | 検索開始インデックス。 |
boIsReverse | 省略すると条件に一致を探します。 trueを指定すると条件不一致を探します。 |
INVALID_INDEX | 未発見 |
それ以外 | 発見したインデックス |
TnbCollection.h の 400 行目に定義があります。
|
inherited |
[検索] 指定配列の検索.
コンパレータ( IComparatorT のサブクラス)を使用して、検索します。
t | 配列 |
comparator | コンパレーター |
startIndex | 検索開始インデックス。 |
INVALID_INDEX | 未発見 |
それ以外 | 発見したインデックス |
TnbCollection.h の 427 行目に定義があります。
|
inherited |
[検索] 指定配列の検索.
IComparatorT::GetDefault() で得られるコンパレータを使用して検索します。
t | 配列 |
startIndex | 検索開始インデックス。 |
INVALID_INDEX | 未発見 |
それ以外 | 発見したインデックス |
TnbCollection.h の 467 行目に定義があります。
|
inherited |
[検索] 指定要素の検索.
コンパレータ( IComparatorT のサブクラス)を使用して、検索します。
t | 要素 |
comparator | コンパレーター |
startIndex | 検索開始インデックス。 |
INVALID_INDEX | 未発見 |
それ以外 | 発見したインデックス |
TnbCollection.h の 482 行目に定義があります。
|
inherited |
[検索] 指定要素の検索.
IComparatorT::GetDefault() で得られるコンパレータを使用して検索します。
t | 要素 |
startIndex | 検索開始インデックス。 |
INVALID_INDEX | 未発見 |
それ以外 | 発見したインデックス |
TnbCollection.h の 508 行目に定義があります。
|
inherited |
[検索] 要素の最大検索.
コンパレータ( IComparatorT のサブクラス)を使用して、比較検索します。
comparator | コンパレーター |
def | 最小値(初期値) |
INVALID_INDEX | 未発見 |
それ以外 | 最大を持つインデックス |
TnbCollection.h の 521 行目に定義があります。
|
inherited |
[検索] 要素の最大検索.
IComparatorT::GetDefault() で得られるコンパレータを使用して比較検索します。
def | 最小値(初期値) |
INVALID_INDEX | 未発見 |
それ以外 | 最大を持つインデックス |
TnbCollection.h の 545 行目に定義があります。
|
inherited |
[検索] 要素の最小検索.
コンパレータ( IComparatorT のサブクラス)を使用して、比較検索します。
comparator | コンパレーター |
def | 最大値(初期値) |
INVALID_INDEX | 未発見 |
それ以外 | 最小を持つインデックス |
TnbCollection.h の 558 行目に定義があります。
|
inherited |
[検索] 要素の最小検索.
IComparatorT::GetDefault() で得られるコンパレータを使用して比較検索します。
def | 最大値(初期値) |
INVALID_INDEX | 未発見 |
それ以外 | 最小を持つインデックス |
TnbCollection.h の 582 行目に定義があります。
|
virtualinherited |
[取得] 要素の取得.
index | インデックス |
CIndexOutOfBoundsException | インデックスが範囲外であることを示すためにスローされます。 |
ICollectionMidT< TYP >, ICollectionMidT< CVectorT< BYTE > >, ICollectionMidT< TParam >, ICollectionMidT< TNB::CListQueueT< TYP > >, ICollectionMidT< BYTE >, ICollectionMidT< CArrayPtrHandleT< TCHAR > >, CConstFileMappingT< TYP >, CConstFileMappingT< BYTE >, CConstFileMappingT< short >, CReaderAdapter, CWriterAdapter, CFileMappingT< TYP >, CMapT< KEY, VAL, INK >, CMapT< TNB::CStrT, TNB::CSingleSetT< TNB::CStrT > >, CMapT< PROPID, CTagInfo >, CMapT< int, HICON >, CMapT< TNB::CStrT, CVectorT< BYTE > >, CMapT< CAscii, CAscii, LPCSTR >, CMapT< TNB::CStrT, TNB::CMapT, LPCTSTR >, CMapT< DWORD, TYP >, CMapT< FOURCC, TChunkMap >, CMapT< FOURCC, TNB::CStrT >, CMapT< HTREEITEM, CPointerHandleT< IDrawable > >, CMapT< COLORREF, CPointerHandleT< TPointInfo > >, CVectorT< TYP >, CVectorT< TNB::CPairT< T, T > >, CVectorT< BYTE >, CVectorT< DWORD >, CVectorT< TNB::CArrayPtrHandleT< TYP > >, CVectorT< WORD >, CVectorT< TNB::CVectorT >, CVectorT< TValue >, CVectorT< TNB::CPairT >, CVectorT< CStr >, CVectorT< TNB::CArrayPtrHandleT< TParam > >, CVectorT< TCHAR >, CVectorT< TNB::CGrid::TFieldInfo >, CVectorT< HICON >, CVectorT< TNB::CMailAddress >, CVectorT< CAscii >, CVectorT< TNB::CMultiFontTextDrawer::TPart >, CVectorT< POINT >, CVectorT< TNB::CPointerHandleT< CCursorManager > >, CVectorT< TNB::CNmea0183::TGpGsv >, CVectorT< TNB::CPacketCommander::CInner::TTask * >, CVectorT< TNB::CPointerHandleT< TYP > >, CVectorT< TInfo >, CVectorT< TParam >, CVectorT< TNB::CStrT< TYP > >, CVectorT< TNB::CPointerHandleT< TNB::CShapeFile::IRecordContent > >, CVectorT< SOCKET >, CVectorT< CVectorT< BYTE > >, CVectorT< TYP * >, CVectorT< TNB::CPointerHandleT< TBindWork > >, CVectorT< CFileInfoArray >, CVectorT< TNB::CTmlDocuments::TFileInfo::TFunc >, CVectorT< TFuncInfo >, CVectorT< EKind >, CVectorT< TNB::CGrammarAnalyzerT >, CVectorT< INDEX >, CVectorT< CVaVaVector >, CVectorT< CArVaVector >, CVectorT< CTmlValue >, CVectorT< char >, CVectorT< EAttr >, CVectorT< TParam * >, CVectorT< TNB::MFC::CColorfulListBox::CColor::TParam >, CVectorT< CPointerHandleT< IDrawable > >, CVectorT< UINT >, CVectorT< CDrawersVector >, CVectorT< IDrawable::Ptr >, CVectorT< TNB::CPointerHandleT< TNB::MFC::CDrawingSubMenu > > (計72項目)で再実装されています。
TnbCollection.h の 298 行目に定義があります。
|
virtualinherited |
[取得] 複数要素取り出し.
[in] | size | 取り出すデータの数。 |
[out] | _P | コピーするポインタ。size 分の領域がある必要があります。 |
[in] | offset | 取り出し開始のインデックス。省略すると0。 |
TnbCollection.h の 322 行目に定義があります。
|
inherited |
[取得] 要素の取得.
index | インデックス |
CIndexOutOfBoundsException | インデックスが範囲外であることを示すためにスローされます。 |
TnbCollection.h の 309 行目に定義があります。
INDEX GetRawIndex | ( | INDEX | index | ) | const |
[取得] オリジナルIndex取得.
index | インデックス |
INVALID_INDEX | インデックスが範囲外 |
INVALID_INDEX以外 | コンストラクタで指定したコレクションでのインデックス |
TnbCollectionAdapter.h の 699 行目に定義があります。
|
virtual |
|
inherited |
[確認] 要素の有無確認.
true | 要素なし |
false | 要素有り |
TnbCollection.h の 346 行目に定義があります。
|
virtualinherited |
[確認] 比較.
コンパレータ( IComparatorT のサブクラス)を使用して、全要素を比較します。
c | 比較対象 |
true | 自分は c と同じ |
false | 自分は c と異なる |
IComparableT< TNB::IConstCollectionT< TYP > >を再実装しています。
CMapT< CAscii, CAscii, LPCSTR >, CMapT< COLORREF, CPointerHandleT< TPointInfo > >, CMapT< DWORD, TYP >, CMapT< FOURCC, TChunkMap >, CMapT< FOURCC, TNB::CStrT >, CMapT< HTREEITEM, CPointerHandleT< IDrawable > >, CMapT< int, HICON >, CMapT< KEY, VAL, INK >, CMapT< PROPID, CTagInfo >, CMapT< TNB::CStrT, CVectorT< BYTE > >, CMapT< TNB::CStrT, TNB::CMapT, LPCTSTR >, CMapT< TNB::CStrT, TNB::CSingleSetT< TNB::CStrT > >で再実装されています。
TnbCollection.h の 624 行目に定義があります。
|
inherited |
[確認] INDEXの有効確認.
index | インデックス |
true | 指定Indexは有効。 |
false | 指定Indexは無効(範囲外)。 |
TnbCollection.h の 358 行目に定義があります。
|
virtual |
[排他] ロック
dwTime | ダミーです。省略してください。 |
ISynchronizedを実装しています。
TnbCollectionAdapter.h の 712 行目に定義があります。
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
bool Remove | ( | INDEX | index | ) |
void ResetIndex | ( | void | ) |
[操作] リセットインデックス.
TnbCollectionAdapter.h の 832 行目に定義があります。
|
virtualinherited |
[処理] シリアライズ
[out] | _sr | シリアライザー。 |
CTnbException | 失敗時は、任意のスローの可能性があります。 |
ISerializableを実装しています。
CAttributedVectorT< TYP, ATT >, CAttributedVectorT< BYTE, BYTE >, CListT< TYP, ATT >, CListT< TNB::CListQueueT< TYP > >, CPointerVectorT< TYP >, CPointerVectorT< CCursorManager >, CPointerVectorT< TNB::CShapeFile::IRecordContent >, CPointerVectorT< TBindWork >, CPointerVectorT< TNB::MFC::CDrawingSubMenu >で再実装されています。
TnbCollection.h の 368 行目に定義があります。
bool Sort | ( | bool | boIsReverse = false , |
bool | boIsBubble = false |
||
) |
[操作] ソート.
IComparatorT::GetDefault() で得られるコンパレータを使用して比較します。
boIsReverse | 省略すると小さい順にソートします。 trueを指定すると大きい順位ソートします。 |
boIsBubble | trueをバブルソートアルゴリズムを使います。 通常はクイックソートアルゴリズムです。 |
true | 成功 |
false | 失敗 |
TnbCollectionAdapter.h の 793 行目に定義があります。
bool Sort | ( | const IComparatorT< TYP > & | comparator, |
bool | boIsReverse = false , |
||
bool | boIsBubble = false |
||
) |
[操作] ソート.
コンパレータ( IComparatorT のサブクラス)を使用して、比較します。
comparator | コンパレーター |
boIsReverse | 省略すると小さい順にソートします。 trueを指定すると大きい順位ソートします。 |
boIsBubble | trueをバブルソートアルゴリズムを使います。 通常はクイックソートアルゴリズムです。 |
true | 成功 |
false | 失敗 |
TnbCollectionAdapter.h の 778 行目に定義があります。
void Swap | ( | INDEX | index1, |
INDEX | index2 | ||
) |
[設定] 要素の入れ替え
index1 | インデックス1 |
index2 | インデックス2 |
CIndexOutOfBoundsException | インデックスが範囲外であることを示すためにスローされます。 |
TnbCollectionAdapter.h の 762 行目に定義があります。
|
virtual |