TNB Library
クラス | 公開メンバ関数 | 全メンバ一覧
IConstCollectionT< TYP > 構造体テンプレートabstract

情報群管理インターフェーステンプレート [詳解]

#include <TnbCollection.h>

ISynchronized, ISerializable, IComparableT< TNB::IConstCollectionT< TYP > >を継承しています。

CAbstractAdapterT< TYP >, CConstAdapterT< TYP >, CConstFileMappingT< TYP >, CIndexAdapterT< TYP >, CSingleSetT< TYP >, ICollectionT< TYP >に継承されています。

クラス

struct  IChecker
 情報群管理インターフェースのチェッカーインターフェース. [詳解]
 

公開メンバ関数

virtual const TYP & At (INDEX index) const =0
 [取得] 要素の参照取得. [詳解]
 
const_iterator begin (void) const
 [反復] 先頭const_iterator. [詳解]
 
virtual INT_PTR Compare (const IConstCollectionT< TYP > &c) const
 [確認] 比較. [詳解]
 
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
 [取得] 要素の取得. [詳解]
 
virtual size_t GetSize (void) const =0
 [取得] 要素数取得. [詳解]
 
 IConstCollectionT (void)
 コンストラクタ [詳解]
 
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 =0
 [排他] ロック [詳解]
 
 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
 [確認] 比較 [詳解]
 
virtual void Serialize (ISerializer &_sr) const
 [処理] シリアライズ [詳解]
 
virtual void Unlock (void) const =0
 [排他] アンロック [詳解]
 

詳解

template<typename TYP>
struct TNB::IConstCollectionT< TYP >

情報群管理インターフェーステンプレート

読み込み専用の複数の要素(TYP)を管理するインターフェースです。

このインターフェースを持つクラスは以下の特徴を持ちます。

  <BR>
 ● Lock() / Unlock() の排他メソッド、及び、スレッドセーブ<BR>
    @par
            Lock() / Unlock() は情報の排他のために使用します。
            Get() , At() , STL互換メソッド(小文字で実装)以外のメソッドは
            Lock() メソッドを使わなくても、スレッドセーブになっていますが、
            メソッドとメソッドの間でオブジェクトの状態が変わるのを避けるために、
            一連の処理を行なう場合、 Lock() すべきです。\n
            複数のスレッドからアクセスされる可能性がない場合は、不要です。

 ● Get() / GetEx() による要素の値を取得<BR>
 ● At() による要素の参照取得<BR>
    @par
            指定の型の要素の取得が行えます。
            インデックス(並び番号)でアクセスします。
            <BR>※ At() はサブクラスによっては複製された要素の参照を返すものもあります。

 ● Find() / FindMax() / FindMin() による指定要素、最大、最小要素の検索<BR>
    @par
            以下の方法の内、いずれかによって実現できます。
            <ul type=circle>
            <li> IComparatorT を実装したコンパレーターを作成し、引数にて委譲する。
            <li> IChecker を実装したチェッカーを作成し、引数にて委譲する。
            <li> 両方省略し、汎用処理を使用する( IComparableT 参照)。
            </ul>
    @par
    \code
    CVectorT<CFoo> vDat;
         ;         //データ代入
    struct IMyComp : IComparatorT<CFoo>
    {
      INT_PTR CompareTo( const CFoo &T1, const CFoo &T2 )
      {
        return T1.Comp(T2);
      }
    } comp;
    CFoo TT;
    INDEX index = vDat.FindMax(&comp, TT);  //一番でかい要素のインデックスが返る。            
    \endcode

 ● Compare() による全要素の比較<BR>
    @par
            各要素を IComparatorT::GetDefault() で得られるコンパレータを使用して
            比較します。

 ● ISerializer 実装クラスによる、シリアライズ<BR>
    @par
            ISerializer を使い、情報をシリアライズすることが可能です。
            シリアライズしたデータは、同じ要素型の他のコレクションで
            デシリアライズすることが可能です。
            <BR>※要素には、シリアライズ可能な型を適用してください。

 ● Standard Template Libraryとの親和性<BR>
 ● begin() / end() による{@link ITERATOR 反復子}<BR>
    @par
            メソッド名が小文字で始まるものは、すべて STL との親和性のために用意されています。
            反復子はインスタンスの参照を持っているだけなので、反復子が有効の間、
            インスタンスは消さないようにしてください。
            また、これらのメソッド、反復子は、スレッドセーブになりませんので、
            必要に応じて Lock() すべきです。
覚え書き
本インターフェースを実装する場合、最低限以下のメソッドを用意する必要が有ります。
  1. At()
  2. GetSize()
参照
ISynchronized を実装しています。
IComparableT を実装しています。
ISerializable を実装しています。ただし デシリアライズはサポートしてません。
例外
CTnbException読み込み処理時にエラーがあった場合、 CTnbException のサブクラスをスローする可能性が有ります。
引数
TYP要素の型。型はコピー機能が必須です。
必要ファイル
TnbCollection.h
日付
06/05/15 ICollectionTをさらに抽象化して作成。
06/05/17 Find関係メソッド、追加。
06/05/20 コンパレーター整理。
06/05/23 Offsetアダプタ新規に伴いFind関係メソッドの引数整理。チェッカーIF追加。
06/06/29 自動コンパレータ改善。
06/07/04 コンパレータIFを分離。
06/08/01 GetConstPointerに依存しないつくりに変更。
06/08/11 Element() を At() に改名。
06/08/13 イテレータを STL にあわせて、改修。
06/08/30 シリアライズ機能、追加。
06/09/13 IsEqual() 追加。
06/10/26 GetEx() を追加。
07/03/15 index,size管理を unsignedに変更。
09/09/10 operator size_t 追加。
11/06/01 コピーオペレータを実装
11/07/11 配列検索の Find() を追加。
11/08/24 GetElements() に第三引数、追加。
19/07/04 FindMin() FindMax() を改変。

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

構築子と解体子

◆ IConstCollectionT()

IConstCollectionT ( void  )

コンストラクタ

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

関数詳解

◆ At()

virtual const TYP & At ( INDEX  index) const
pure virtual

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

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

CBitVector, ICollectionMidT< TYP >, ICollectionMidT< CVectorT< BYTE > >, ICollectionMidT< TParam >, ICollectionMidT< TNB::CListQueueT< TYP > >, ICollectionMidT< BYTE >, ICollectionMidT< CArrayPtrHandleT< TCHAR > >, CConstOffsetAdapterT< TYP >, CConstOffsetAdapterT< BYTE >, CConstReverseAdapterT< TYP >, CConstAppendAdapterT< TYP >, COffsetAdapterT< TYP >, CConstAdapterT< TYP >, CIndexAdapterT< TYP >, CConstFileMappingT< TYP >, CConstFileMappingT< BYTE >, CConstFileMappingT< short >, CConstResourceData, CDummyCollectionT< TYP >, CDummyCollectionT< BYTE >, CReaderAdapter, CWriterAdapter, CFileMappingT< TYP >, CMapT< KEY, VAL, INK >::CConstKeysAdapter, CMapT< KEY, VAL, INK >::CConstValuesAdapter, 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 > >, CPointerVectorT< TYP >, CPointerVectorT< CCursorManager >, CPointerVectorT< TNB::CShapeFile::IRecordContent >, CPointerVectorT< TBindWork >, CPointerVectorT< TNB::MFC::CDrawingSubMenu >, CSingleSetT< TYP >, CSingleSetT< TNB::CPacketCommander::CInner::TTask * >, 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 > > (計92項目)で実装されています。

◆ begin()

const_iterator begin ( void  ) const

[反復] 先頭const_iterator.

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

戻り値
const_iterator

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

◆ Compare()

virtual INT_PTR Compare ( const IConstCollectionT< TYP > &  c) const
virtual

[確認] 比較.

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

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

IComparableT< TNB::IConstCollectionT< TYP > >を実装しています。

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

◆ Deserialize()

virtual void Deserialize ( const IDeserializer ds)
virtual

[処理] デシリアライズ

引数
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.h384 行目に定義があります。

◆ end()

const_iterator end ( void  ) const

[反復] 最後const_iterator.

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

戻り値
const_iterator

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

◆ Find() [1/5]

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

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

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

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

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

◆ Find() [2/5]

INDEX Find ( const IConstCollectionT< TYP > &  t,
const IComparatorT< TYP > &  comparator,
INDEX  startIndex = 0 
) const

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

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

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

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

◆ Find() [3/5]

INDEX Find ( const IConstCollectionT< TYP > &  t,
INDEX  startIndex = 0 
) const

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

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

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

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

◆ Find() [4/5]

INDEX Find ( const TYP &  t,
const IComparatorT< TYP > &  comparator,
INDEX  startIndex = 0 
) const

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

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

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

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

◆ Find() [5/5]

INDEX Find ( const TYP &  t,
INDEX  startIndex = 0 
) const

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

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

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

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

◆ FindMax() [1/2]

INDEX FindMax ( const IComparatorT< TYP > &  comparator,
const TYP &  def 
) const

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

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

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

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

◆ FindMax() [2/2]

INDEX FindMax ( const TYP &  def) const

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

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

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

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

◆ FindMin() [1/2]

INDEX FindMin ( const IComparatorT< TYP > &  comparator,
const TYP &  def 
) const

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

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

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

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

◆ FindMin() [2/2]

INDEX FindMin ( const TYP &  def) const

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

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

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

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

◆ Get()

virtual TYP Get ( INDEX  index) const
virtual

[取得] 要素の取得.

覚え書き
非スレッドセーブメソッドです。 複数のスレッドからアクセスがある場合、 GetEx() を使用してください。
引数
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.h298 行目に定義があります。

◆ GetElements()

virtual size_t GetElements ( size_t  size,
TYP *  _P,
INDEX  offset = 0 
) const
virtual

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

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

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

◆ GetEx()

TYP GetEx ( INDEX  index) const

[取得] 要素の取得.

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

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

◆ GetSize()

virtual size_t GetSize ( void  ) const
pure virtual

[取得] 要素数取得.

覚え書き
Pure関数です。
戻り値
要素数

CBitVector, CBlockLinkVectorT< TYP >, CBlockLinkVectorT< TParam >, CAbstractAdapterT< TYP >, CAbstractAdapterT< BYTE >, CConstOffsetAdapterT< TYP >, CConstOffsetAdapterT< BYTE >, COffsetAdapterT< TYP >, CConstAdapterT< TYP >, CIndexAdapterT< TYP >, CConstFileMappingT< TYP >, CConstFileMappingT< BYTE >, CConstFileMappingT< short >, CConstResourceData, CDummyCollectionT< TYP >, CDummyCollectionT< BYTE >, CReaderAdapter, CWriterAdapter, CFileMappingT< TYP >, CListT< TYP, ATT >, CListT< TNB::CListQueueT< TYP > >, CMapT< KEY, VAL, INK >::CConstKeysAdapter, CMapT< KEY, VAL, INK >::CConstValuesAdapter, 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 > >, CPointerVectorT< TYP >, CPointerVectorT< CCursorManager >, CPointerVectorT< TNB::CShapeFile::IRecordContent >, CPointerVectorT< TBindWork >, CPointerVectorT< TNB::MFC::CDrawingSubMenu >, CPriorityQueueT< TYP >, CRingQueueT< TYP, ISI, INV >, CRingQueueT< TYP, false, TYP >, CRingQueueT< CVectorT< BYTE >, false, CVectorT< BYTE > >, CRingQueueT< BYTE >, CRingQueueT< TParam >, CRingQueueT< CArrayPtrHandleT< TCHAR > >, CSingleSetT< TYP >, CSingleSetT< TNB::CPacketCommander::CInner::TTask * >, CSharedQueueT< TYP, SIZ >, 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 > > (計98項目)で実装されています。

◆ IsEmpty()

bool IsEmpty ( void  ) const

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

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

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

◆ IsEqual()

virtual bool IsEqual ( const IConstCollectionT< TYP > &  c) const
virtual

[確認] 比較.

コンパレータ( 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.h624 行目に定義があります。

◆ IsInRange()

bool IsInRange ( INDEX  index) const

[確認] INDEXの有効確認.

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

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

◆ Lock()

virtual bool Lock ( DWORD  dwTime = INFINITE) const
pure virtualinherited

[排他] ロック

引数
dwTimeロックにトライし続けるミリ秒。省略すると無限に待ちます。
戻り値
true成功
false失敗

CBitVector, CBlockLinkVectorT< TYP >, CBlockLinkVectorT< TParam >, CAbstractAdapterT< TYP >, CAbstractAdapterT< BYTE >, CConstAppendAdapterT< TYP >, COffsetAdapterT< TYP >, CConstAdapterT< TYP >, CIndexAdapterT< TYP >, CConstFileMappingT< TYP >, CConstFileMappingT< BYTE >, CConstFileMappingT< short >, CConstResourceData, CDummyCollectionT< TYP >, CDummyCollectionT< BYTE >, CReaderAdapter, CWriterAdapter, CFileMappingT< TYP >, CListT< TYP, ATT >, CListT< TNB::CListQueueT< TYP > >, CMapT< KEY, VAL, INK >::CConstKeysAdapter, CMapT< KEY, VAL, INK >::CConstValuesAdapter, 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 > >, CPointerVectorT< TYP >, CPointerVectorT< CCursorManager >, CPointerVectorT< TNB::CShapeFile::IRecordContent >, CPointerVectorT< TBindWork >, CPointerVectorT< TNB::MFC::CDrawingSubMenu >, CPriorityQueueT< TYP >, CRingQueueT< TYP, ISI, INV >, CRingQueueT< TYP, false, TYP >, CRingQueueT< CVectorT< BYTE >, false, CVectorT< BYTE > >, CRingQueueT< BYTE >, CRingQueueT< TParam >, CRingQueueT< CArrayPtrHandleT< TCHAR > >, CSingleSetT< TYP >, CSingleSetT< TNB::CPacketCommander::CInner::TTask * >, CSharedQueueT< TYP, SIZ >, CAbstractSyncHandle, CSyncSection, CSyncSectionEx, CSyncCounter, CSyncDummy, CSyncMetered, 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 > > (計103項目)で実装されています。

◆ operator size_t()

operator size_t ( void  ) const

[取得] 要素数取得.

戻り値
要素数

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

◆ operator!=()

bool operator!= ( const TNB::IConstCollectionT< TYP > &  t) const
inherited

[確認] 比較

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

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

◆ operator-()

INT_PTR operator- ( const TNB::IConstCollectionT< TYP > &  t) const
inherited

[確認] 比較

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

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

◆ operator<()

bool operator< ( const TNB::IConstCollectionT< TYP > &  t) const
inherited

[確認] 比較

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

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

◆ operator<=()

bool operator<= ( const TNB::IConstCollectionT< TYP > &  t) const
inherited

[確認] 比較

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

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

◆ operator==()

bool operator== ( const TNB::IConstCollectionT< TYP > &  t) const
inherited

[確認] 比較

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

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

◆ operator>()

bool operator> ( const TNB::IConstCollectionT< TYP > &  t) const
inherited

[確認] 比較

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

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

◆ operator>=()

bool operator>= ( const TNB::IConstCollectionT< TYP > &  t) const
inherited

[確認] 比較

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

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

◆ Serialize()

virtual void Serialize ( ISerializer _sr) const
virtual

[処理] シリアライズ

引数
[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.h368 行目に定義があります。

◆ Unlock()

virtual void Unlock ( void  ) const
pure virtualinherited

[排他] アンロック

CBitVector, CBlockLinkVectorT< TYP >, CBlockLinkVectorT< TParam >, CAbstractAdapterT< TYP >, CAbstractAdapterT< BYTE >, CConstAppendAdapterT< TYP >, COffsetAdapterT< TYP >, CConstAdapterT< TYP >, CIndexAdapterT< TYP >, CConstFileMappingT< TYP >, CConstFileMappingT< BYTE >, CConstFileMappingT< short >, CConstResourceData, CDummyCollectionT< TYP >, CDummyCollectionT< BYTE >, CReaderAdapter, CWriterAdapter, CFileMappingT< TYP >, CListT< TYP, ATT >, CListT< TNB::CListQueueT< TYP > >, CMapT< KEY, VAL, INK >::CConstKeysAdapter, CMapT< KEY, VAL, INK >::CConstValuesAdapter, 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 > >, CPointerVectorT< TYP >, CPointerVectorT< CCursorManager >, CPointerVectorT< TNB::CShapeFile::IRecordContent >, CPointerVectorT< TBindWork >, CPointerVectorT< TNB::MFC::CDrawingSubMenu >, CPriorityQueueT< TYP >, CRingQueueT< TYP, ISI, INV >, CRingQueueT< TYP, false, TYP >, CRingQueueT< CVectorT< BYTE >, false, CVectorT< BYTE > >, CRingQueueT< BYTE >, CRingQueueT< TParam >, CRingQueueT< CArrayPtrHandleT< TCHAR > >, CSingleSetT< TYP >, CSingleSetT< TNB::CPacketCommander::CInner::TTask * >, CSharedQueueT< TYP, SIZ >, CSyncSection, CSyncMutex, CSyncSemaphore, CSyncEvent, CSyncCounter, CSyncDummy, CSyncMetered, CSyncWaitableTimer, 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 > > (計105項目)で実装されています。