TNB Library
|
シングルセット情報管理テンプレート [詳解]
#include <TnbSet.h>
公開メンバ関数 | |
virtual const TYP & | At (INDEX index) const |
[取得] 要素の参照取得. [詳解] | |
const_iterator | begin (void) const |
[反復] 先頭const_iterator. [詳解] | |
virtual INT_PTR | Compare (const IConstCollectionT< TYP > &c) const |
[確認] 比較. [詳解] | |
CSingleSetT (const CSingleSetT< TYP > &other) | |
コピーコンストラクタ [詳解] | |
CSingleSetT (size_t size=0) | |
コンストラクタ [詳解] | |
bool | Delete (const TYP &t) |
[削除] 指定要素の削除. [詳解] | |
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 |
[取得] 複数要素取り出し. [詳解] | |
INDEX | GetEqualIndex (const TYP &t) const |
[検索] 指定要素の検索. [詳解] | |
TYP | GetEx (INDEX index) const |
[取得] 要素の取得. [詳解] | |
virtual size_t | GetSize (void) const |
[取得] 要素数取得. [詳解] | |
bool | Has (const TYP &t) const |
[確認] 値あるか? [詳解] | |
bool | Insert (const IConstCollectionT< TYP > &t) |
[検索] 指定要素挿入. [詳解] | |
INDEX | Insert (const TYP &t) |
[検索] 指定要素挿入. [詳解] | |
size_t | InsertElements (size_t size, const TYP *P) |
[検索] 指定要素挿入. [詳解] | |
INDEX | InsertEx (const TYP &t) |
[検索] 指定要素挿入. [詳解] | |
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 |
[確認] 比較 [詳解] | |
CSingleSetT & | operator= (const CSingleSetT &other) |
[代入] 代入 [詳解] | |
bool | operator== (const TNB::IConstCollectionT< TYP > &t) const |
[確認] 比較 [詳解] | |
bool | operator> (const TNB::IConstCollectionT< TYP > &t) const |
[確認] 比較 [詳解] | |
bool | operator>= (const TNB::IConstCollectionT< TYP > &t) const |
[確認] 比較 [詳解] | |
const TYP & | operator[] (INDEX index) const |
[取得] 要素の参照取得. [詳解] | |
virtual const TYP * | ReferBuffer (void) const |
[取得] データアドレス取得. [詳解] | |
bool | Remove (INDEX index) |
[削除] 要素一つ削除. [詳解] | |
virtual bool | RemoveAll (void) |
[削除] 空化 [詳解] | |
virtual void | Serialize (ISerializer &_sr) const |
[処理] シリアライズ [詳解] | |
virtual void | Unlock (void) const |
[排他] アンロック [詳解] | |
限定公開メンバ関数 | |
virtual INDEX | OnFoundEqual (INDEX index) |
[通知] 同じ値発見通知. [詳解] | |
限定公開変数類 | |
CVectorT< TYP > | m_data |
データ [詳解] | |
シングルセット情報管理テンプレート
同じ値は2つ格納できません。小さい順にソートされて格納されます。 型の配列(連続したメモリ配置)を管理します。 メモリを連続して配置しているため、他のAPIに配列として渡すのが容易です。
TYP | 保持する型(operator<() 、及びコピー可能の型に限る) // 例)TFoo を格納したい場合
struct TFoo
{
{
return a < v.a;
}
CStr a;
};
// 例)int を大きい順に格納したい場合
struct TInteger
{
{
return value > other.value;
}
int value;
};
|
|
explicit |
CSingleSetT | ( | const CSingleSetT< TYP > & | other | ) |
|
virtual |
[取得] 要素の参照取得.
index | インデックス |
CIndexOutOfBoundsException | インデックスが範囲外であることを示すためにスローされます。 |
IConstCollectionT< TYP >を実装しています。
|
inherited |
|
virtualinherited |
[確認] 比較.
コンパレータ( IComparatorT のサブクラス)を使用して、全要素を比較します。
c | 比較対象 |
0 | 自分は c と同じ |
1以上 | 自分は c より大きい |
0未満 | 自分は c より小さい |
IComparableT< TNB::IConstCollectionT< TYP > >を実装しています。
TnbCollection.h の 595 行目に定義があります。
bool Delete | ( | const TYP & | t | ) |
|
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 行目に定義があります。
INDEX GetEqualIndex | ( | const TYP & | t | ) | const |
|
inherited |
[取得] 要素の取得.
index | インデックス |
CIndexOutOfBoundsException | インデックスが範囲外であることを示すためにスローされます。 |
TnbCollection.h の 309 行目に定義があります。
|
virtual |
bool Insert | ( | const IConstCollectionT< TYP > & | t | ) |
INDEX Insert | ( | const TYP & | t | ) |
size_t InsertElements | ( | size_t | size, |
const TYP * | P | ||
) |
INDEX InsertEx | ( | const TYP & | t | ) |
|
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を実装しています。
|
protectedvirtual |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
CSingleSetT & operator= | ( | const CSingleSetT< TYP > & | other | ) |
|
inherited |
|
inherited |
|
inherited |
const TYP & operator[] | ( | INDEX | index | ) | const |
|
virtual |
[取得] データアドレス取得.
ISequenceCollectionT< TYP >を実装しています。
bool Remove | ( | INDEX | index | ) |
|
virtual |
|
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 行目に定義があります。
|
virtual |