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

配列型情報管理テンプレート [詳解]

#include <TnbVector.h>

ICollectionT< TYP >, ISequenceCollectionT< TYP >を継承しています。

CAttributedVectorT< TYP, ATT >, CAutoVectorT< TYP >, CStackT< TYP >に継承されています。

公開メンバ関数

virtual INDEX Add (const TYP &t)
 [追加] 要素一つ追加. [詳解]
 
virtual size_t AddElements (size_t size, const TYP *P=NULL)
 [追加] 複数要素追加. [詳解]
 
INDEX AddEx (const TYP &t)
 [追加] 要素一つ追加. [詳解]
 
virtual size_t Append (const IConstCollectionT< TYP > &c)
 [追加] 追加. [詳解]
 
virtual const TYP & At (INDEX index) const
 [取得] 要素の参照取得. [詳解]
 
iterator begin (void)
 [反復] 先頭iterator. [詳解]
 
const_iterator begin (void) const
 [反復] 先頭const_iterator. [詳解]
 
virtual INT_PTR Compare (const IConstCollectionT< TYP > &c) const
 [確認] 比較. [詳解]
 
virtual size_t Copy (const IConstCollectionT< TYP > &c)
 [設定] コピー. [詳解]
 
virtual size_t CopyElements (size_t size, const TYP *P=NULL)
 [設定] コピー. [詳解]
 
virtual size_t Cull (const IChecker &checker, bool boIsReverse=false)
 [削除] 間引き. [詳解]
 
 CVectorT (const CVectorT< TYP > &other)
 コピーコンストラクタ [詳解]
 
 CVectorT (size_t size=0)
 コンストラクタ [詳解]
 
virtual void Deserialize (const IDeserializer &ds)
 [処理] デシリアライズ [詳解]
 
iterator end (void)
 [反復] 最後iterator. [詳解]
 
const_iterator end (void) const
 [反復] 最後const_iterator. [詳解]
 
iterator erase (iterator ite)
 [反復] 削除 [詳解]
 
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
 [取得] 要素の取得. [詳解]
 
TYP * GetBuffer (size_t size=0)
 [操作] データアドレス取得 [詳解]
 
virtual size_t GetElements (size_t size, TYP *_P, INDEX offset=0) const
 [取得] 複数要素取り出し. [詳解]
 
TYP GetEx (INDEX index) const
 [取得] 要素の取得. [詳解]
 
int GetReferCount (void)
 [取得] 参照数取得 [詳解]
 
virtual size_t GetSize (void) const
 [取得] サイズ取得 [詳解]
 
virtual bool Insert (INDEX index, const TYP &t)
 [追加] 要素一つ挿入 [詳解]
 
iterator insert (iterator ite, const TYP &t=TYP())
 [反復] 挿入 [詳解]
 
virtual bool InsertEx (INDEX index, const TYP &t)
 [追加] 要素一つ挿入. [詳解]
 
void Invalid (void)
 [操作] 無効状態にする [詳解]
 
bool IsEmpty (void) const
 [確認] 要素の有無確認. [詳解]
 
virtual bool IsEqual (const IConstCollectionT< TYP > &c) const
 [確認] 比較. [詳解]
 
bool IsInRange (INDEX index) const
 [確認] INDEXの有効確認. [詳解]
 
bool IsValid (void) const
 [確認] 有効チェック [詳解]
 
virtual bool Lock (DWORD dwTime=INFINITE) const
 [排他] ロック [詳解]
 
CVectorT< TYP > Mid (INDEX startIndex, size_t size=0) const
 [作成] 切り出し [詳解]
 
 operator size_t (void) const
 [取得] 要素数取得. [詳解]
 
bool operator!= (const TNB::IConstCollectionT< TYP > &t) const
 [確認] 比較 [詳解]
 
CVectorT< TYP > operator+ (const CVectorT< TYP > &other) const
 [作成] 連結 [詳解]
 
CVectorToperator+= (const CVectorT< TYP > &vector)
 [追加] 追加オペレータ [詳解]
 
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
 [確認] 比較 [詳解]
 
CVectorToperator= (const CVectorT &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
 [確認] 比較 [詳解]
 
TYP & operator[] (INDEX index)
 [取得] 要素の参照取得. [詳解]
 
const TYP & operator[] (INDEX index) const
 [取得] 要素の参照取得. [詳解]
 
void push_back (const TYP &t)
 [反復] 最後に追加 [詳解]
 
void push_front (const TYP &t)
 [反復] 先頭に挿入 [詳解]
 
virtual TYP & Ref (INDEX index)
 [取得] 要素の参照取得. [詳解]
 
virtual const TYP * ReferBuffer (void) const
 [取得] データアドレス取得 [詳解]
 
void ReleaseBuffer (void)
 [操作] データの管理を元に戻す. [詳解]
 
virtual bool Remove (INDEX index)
 [削除] 要素一つ削除. [詳解]
 
virtual bool RemoveAll (void)
 [削除] 空化 [詳解]
 
virtual size_t RemoveElements (INDEX index, size_t size=0)
 [削除] 要素削除. [詳解]
 
bool RemoveEx (INDEX index)
 [削除] 要素一つ削除. [詳解]
 
virtual void Serialize (ISerializer &_sr) const
 [処理] シリアライズ [詳解]
 
virtual bool Set (INDEX index, const TYP &t)
 [設定] 要素の設定. [詳解]
 
virtual size_t SetElements (size_t size, const TYP *P=NULL)
 [設定] 複数要素設定. [詳解]
 
bool SetEx (INDEX index, const TYP &t)
 [設定] 要素の設定. [詳解]
 
void SetIncrementSize (size_t size)
 [設定] 余白サイズ [詳解]
 
virtual bool SetSize (size_t size)
 [操作] サイズ指定 [詳解]
 
bool Shuffle (int iDepth=1)
 [操作] シャッフル. [詳解]
 
bool Sort (bool boIsReverse=false, bool boIsBubble=false)
 [操作] ソート. [詳解]
 
bool Sort (const IComparatorT< TYP > &comparator, bool boIsReverse=false, bool boIsBubble=false)
 [操作] ソート. [詳解]
 
virtual void Swap (INDEX index1, INDEX index2)
 [設定] 要素の入れ替え. [詳解]
 
size_t TrimBottom (const TYP &t)
 [処理] 末尾トリム. [詳解]
 
size_t TrimBottom (const TYP &t, const IComparatorT< TYP > &comparator)
 [処理] 末尾トリム. [詳解]
 
virtual void Unlock (void) const
 [排他] アンロック [詳解]
 
virtual ~CVectorT (void)
 デストラクタ [詳解]
 

詳解

template<typename TYP>
class TNB::CVectorT< TYP >

配列型情報管理テンプレート

型の配列(連続したメモリ配置)を管理します。
メモリを連続して配置しているため、他のAPIに配列として渡すのが容易です。

動的に配列を増やすことができます(メモリの再配置が発生する可能性があります)。
覚え書き
関数の戻り型として使用するときに便利な、「無効状態」を管理できます ( Invalid() , IsValid() )。
begin() / end() によるイテレータは、単純に要素のポインタになっています。 そのため、高速にアクセスが可能です。ただし、スレッドセーブでは有りませんので、 スレッドで使用している場合、Lockするようにしてください。
引数
TYP保持する型(コピー可能の型に限る)
参照
IConstCollectionT を実装しています。
ICollectionT を実装しています。
ISequenceCollectionT を実装しています。
覚え書き
スレッドセーブ、コピー機能を省いた簡易的な CSimpleVectorT もあります。
必要ファイル
TnbVector.h
日付
06/01/01 旧CDataBlockを抽象化。
06/04/19 ICollectionT を実装するように変更。
06/04/21 コンストラクト時に追加サイズ指定可能にした。
06/04/22 CVectorHandleT を廃止。Clone() メソッド、追加。
06/05/01 ISequenceCollectionT を実装するように変更。
06/05/15 Cloneを廃止。
06/05/23 AddElementsなど、IFに移行したメソッドの削除。
06/05/30 Insert() メソッド、追加。
06/08/01 GetConstPointer/GetPointerに依存しないつくりに変更。
06/08/13 イテレータを STL にあわせて、改修。
06/08/25 SetSize の最適化。
06/09/13 CopyElements() メソッド、Vector専用に追加。
06/10/26 最適化。
06/12/06 Remove()に削除数指定のメソッド、追加。
07/03/15 index,size管理を unsignedに変更。
08/01/09 Remove()の部バグ修正。
09/09/07 CopyElements() -> SetElements() に改名。
11/04/19 GetBuffer() 中のコピーをサポート。

TnbVector.h74 行目に定義があります。

構築子と解体子

◆ CVectorT() [1/2]

CVectorT ( size_t  size = 0)
explicit

コンストラクタ

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

TnbVector.h161 行目に定義があります。

◆ CVectorT() [2/2]

CVectorT ( const CVectorT< TYP > &  other)

コピーコンストラクタ

覚え書き
コピー元とバッファを共有します。
引数
otherコピー元の CVectorT インスタンス

TnbVector.h172 行目に定義があります。

◆ ~CVectorT()

virtual ~CVectorT ( void  )
virtual

デストラクタ

TnbVector.h186 行目に定義があります。

関数詳解

◆ Add()

virtual INDEX Add ( const TYP &  t)
virtual

[追加] 要素一つ追加.

自インスタンスで管理しているバッファに指定の一データを連結します。

覚え書き
非スレッドセーブメソッドです。 複数のスレッドからアクセスがある場合、 AddEx() を使用してください。
引数
t要素。
戻り値
INVALID_INDEX失敗。
上記以外追加したINDEX。

ICollectionT< TYP >を実装しています。

CFigurePointerT< T, TR >, CStackT< TYP >で再実装されています。

TnbVector.h383 行目に定義があります。

◆ AddElements()

virtual size_t AddElements ( size_t  size,
const TYP *  P = NULL 
)
virtual

[追加] 複数要素追加.

最後に追加します。

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

ICollectionT< TYP >を再実装しています。

CStackT< TYP >で再実装されています。

TnbVector.h456 行目に定義があります。

◆ AddEx()

INDEX AddEx ( const TYP &  t)
inherited

[追加] 要素一つ追加.

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

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

◆ Append()

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

[追加] 追加.

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

覚え書き
追加元データの範囲を限定したい場合、元データに CConstOffsetAdapterT を使用します。
引数
c追加するデータ
戻り値
INVALID_SIZEエラー。
それ以外追加した数。

ICollectionT< TYP >を再実装しています。

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

◆ At()

virtual const TYP & At ( INDEX  index) const
virtual

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

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

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

TnbVector.h233 行目に定義があります。

◆ begin() [1/2]

iterator begin ( void  )

[反復] 先頭iterator.

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

戻り値
iterator

TnbVector.h105 行目に定義があります。

◆ begin() [2/2]

const_iterator begin ( void  ) const

[反復] 先頭const_iterator.

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

戻り値
const_iterator

TnbVector.h91 行目に定義があります。

◆ Compare()

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

[確認] 比較.

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

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

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

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

◆ Copy()

virtual size_t Copy ( const IConstCollectionT< TYP > &  c)
virtualinherited

[設定] コピー.

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

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

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

◆ CopyElements()

virtual size_t CopyElements ( size_t  size,
const TYP *  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エラー。
それ以外削除した数。

CListT< TYP, ATT >, CListT< TNB::CListQueueT< TYP > >で再実装されています。

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

◆ Deserialize()

virtual void Deserialize ( const IDeserializer ds)
virtualinherited

[処理] デシリアライズ

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

IConstCollectionT< TYP >を再実装しています。

CAttributedVectorT< TYP, ATT >, CAttributedVectorT< BYTE, BYTE >, CListT< TYP, ATT >, CListT< TNB::CListQueueT< TYP > >で再実装されています。

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

◆ end() [1/2]

iterator end ( void  )

[反復] 最後iterator.

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

戻り値
iterator

TnbVector.h112 行目に定義があります。

◆ end() [2/2]

const_iterator end ( void  ) const

[反復] 最後const_iterator.

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

戻り値
const_iterator

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

◆ erase()

iterator erase ( iterator  ite)

[反復] 削除

引数
ite削除する位置の iterator
戻り値
削除した次の iterator

TnbVector.h132 行目に定義があります。

◆ 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< TYP > &  t,
const IComparatorT< TYP > &  comparator,
INDEX  startIndex = 0 
) const
inherited

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

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

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

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

◆ Find() [3/5]

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

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

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
inherited

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

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

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

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

◆ Find() [5/5]

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

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

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

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

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

◆ FindMax() [1/2]

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

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

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

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

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

◆ FindMax() [2/2]

INDEX FindMax ( const TYP &  def) const
inherited

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

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

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

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

◆ FindMin() [1/2]

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

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

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

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

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

◆ FindMin() [2/2]

INDEX FindMin ( const TYP &  def) const
inherited

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

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

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

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

◆ Get()

virtual TYP Get ( INDEX  index) const
virtual

[取得] 要素の取得.

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

IConstCollectionT< TYP >を再実装しています。

TnbVector.h220 行目に定義があります。

◆ GetBuffer()

TYP * GetBuffer ( size_t  size = 0)

[操作] データアドレス取得

この関数で取得したデータの内容は自由に書き換えてかまいません。もちろん
確保したサイズ以上はアクセスしてはいけません。

取得したアドレスは delete で開放してはいけません。

データの書き換えが終わったら ReleaseBuffer() を実行してください。
覚え書き
この関数を行った後でも以前と変わらぬ使い方が出来ます。ただし、複製の際 GetBuffer() 実行後 ReleaseBuffer() を実装するまで、Cloneを作成するように なります。
参照だけであるなら ReferBuffer() を使用してください。高速です。
GetBuffer() 実行後、 ReleaseBuffer() するまでクラスに対する操作は 禁止です(取得したアドレスが無効になる可能性があるため)。
この関数では他と共用していたメモリを独自に確保しなおしています。 他のバッファとは分離されることに注意してください。
引数
size確保するバッファサイズ。省略すると、変化せずアドレスを返します。
戻り値
アドレス データがない場合NULLがかえります。

TnbVector.h745 行目に定義があります。

◆ GetElements()

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

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

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

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

◆ GetEx()

TYP GetEx ( INDEX  index) const
inherited

[取得] 要素の取得.

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

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

◆ GetReferCount()

int GetReferCount ( void  )

[取得] 参照数取得

覚え書き
管理しているデータが他から参照されているか調べることが出来ます。
戻り値
参照数

TnbVector.h675 行目に定義があります。

◆ GetSize()

virtual size_t GetSize ( void  ) const
virtual

[取得] サイズ取得

戻り値
本インスタンスが管理しているデータの長さ。

ISequenceCollectionT< TYP >を実装しています。

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

◆ Insert()

virtual bool Insert ( INDEX  index,
const TYP &  t 
)
virtual

[追加] 要素一つ挿入

覚え書き
指定のインデックスに要素を追加します。
引数
indexインデックス
t要素
戻り値
true挿入成功
false失敗(インデックス無効)

ICollectionT< TYP >を再実装しています。

CAutoVectorT< BYTE >, CAutoVectorT< CDrawersVector >, CAutoVectorT< CPointerHandleT< IDrawable > >, CAutoVectorT< IDrawable::Ptr >, CAutoVectorT< INDEX >, CAutoVectorT< TYP >, CAutoVectorT< UINT >で再実装されています。

TnbVector.h579 行目に定義があります。

◆ insert()

iterator insert ( iterator  ite,
const TYP &  t = TYP() 
)

[反復] 挿入

引数
ite挿入する位置の iterator
t要素
戻り値
挿入した場所の iterator

TnbVector.h120 行目に定義があります。

◆ InsertEx()

virtual bool InsertEx ( INDEX  index,
const TYP &  t 
)
virtualinherited

[追加] 要素一つ挿入.

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

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

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

◆ Invalid()

void Invalid ( void  )

[操作] 無効状態にする

覚え書き
状態としてはRemoveAllと同じ。

TnbVector.h604 行目に定義があります。

◆ IsEmpty()

bool IsEmpty ( void  ) const
inherited

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

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

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

◆ IsEqual()

virtual bool IsEqual ( const IConstCollectionT< TYP > &  c) const
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.h624 行目に定義があります。

◆ IsInRange()

bool IsInRange ( INDEX  index) const
inherited

[確認] INDEXの有効確認.

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

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

◆ IsValid()

bool IsValid ( void  ) const

[確認] 有効チェック

覚え書き
Invalid()で無効にされたとき、false になります。 無効はデータなし状態と同じです。
戻り値
true有効(データがEmptyの可能性もあり)
false無効(データはEmpty)

TnbVector.h687 行目に定義があります。

◆ Lock()

virtual bool Lock ( DWORD  dwTime = INFINITE) const
virtual

[排他] ロック

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

ISynchronizedを実装しています。

TnbVector.h353 行目に定義があります。

◆ Mid()

CVectorT< TYP > Mid ( INDEX  startIndex,
size_t  size = 0 
) const

[作成] 切り出し

覚え書き
自インスタンスで管理しているデータの中から 任意の場所のデータを取り出し、CVectorTを作成します。 自インスタンスは変化しません。
引数
startIndex切り出し開始位置
size切り出しサイズ。省略すると、管理している最後までを切り出します。
戻り値
新規インスタンス。

TnbVector.h705 行目に定義があります。

◆ operator size_t()

operator size_t ( void  ) const
inherited

[取得] 要素数取得.

戻り値
要素数

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

◆ operator!=()

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

[確認] 比較

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

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

◆ operator+()

CVectorT< TYP > operator+ ( const CVectorT< TYP > &  other) const

[作成] 連結

覚え書き
自インスタンスで管理しているデータに指定のデータを 連結した、 CVectorT を作成します。 自インスタンスは変化しません。
引数
other連結する CVectorT
戻り値
新規インスタンス

TnbVector.h325 行目に定義があります。

◆ operator+=()

CVectorT & operator+= ( const CVectorT< TYP > &  vector)

[追加] 追加オペレータ

覚え書き
自インスタンスで管理しているデータに指定のデータを 追加します。
引数
vector追加するCVectorT
戻り値
自分の参照

TnbVector.h311 行目に定義があります。

◆ 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=()

CVectorT & operator= ( const CVectorT< TYP > &  other)

[代入] 代入

覚え書き
自インスタンスで管理しているバッファを開放し、
代入元の情報を共有するようになります。
引数
other代入する CVectorT
戻り値
自分の参照

TnbVector.h198 行目に定義があります。

◆ 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 行目に定義があります。

◆ operator[]() [1/2]

TYP & operator[] ( INDEX  index)

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

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

TnbVector.h297 行目に定義があります。

◆ operator[]() [2/2]

const TYP & operator[] ( INDEX  index) const

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

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

TnbVector.h284 行目に定義があります。

◆ push_back()

void push_back ( const TYP &  t)

[反復] 最後に追加

引数
t要素

TnbVector.h149 行目に定義があります。

◆ push_front()

void push_front ( const TYP &  t)

[反復] 先頭に挿入

引数
t要素

TnbVector.h143 行目に定義があります。

◆ Ref()

virtual TYP & Ref ( INDEX  index)
virtual

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

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

ICollectionT< TYP >を実装しています。

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

◆ ReferBuffer()

virtual const TYP * ReferBuffer ( void  ) const
virtual

[取得] データアドレス取得

覚え書き
このアドレスの内容は書き換えてはいけません。書き換えるための アドレスは GetBuffer() を使用して取得してください。
取得したアドレスは delete で開放してはいけません。
取得したアドレスは本クラスの計算等、操作すると無効になります。
戻り値
アドレス。確保していない場合、NULLが返ります。

ISequenceCollectionT< TYP >を実装しています。

TnbVector.h664 行目に定義があります。

◆ ReleaseBuffer()

void ReleaseBuffer ( void  )

[操作] データの管理を元に戻す.

GetBuffer() を実行するとバッファの内容を書き換え ても問題ないようにバッファの管理を変更します。 本関数はその状態を元に戻す関数です。 戻さないと、コピー処理の際のオーバーヘッドが大きくなります。

覚え書き
本関数実行後、上記の関数で取得したバッファ内容は書き換えないでください。

TnbVector.h805 行目に定義があります。

◆ Remove()

virtual bool Remove ( INDEX  index)
virtual

[削除] 要素一つ削除.

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

ICollectionT< TYP >を実装しています。

CAttributedVectorT< TYP, ATT >, CAttributedVectorT< BYTE, BYTE >で再実装されています。

TnbVector.h397 行目に定義があります。

◆ RemoveAll()

virtual bool RemoveAll ( void  )
virtual

[削除] 空化

覚え書き
自インスタンスで管理しているバッファを空にします。
戻り値
true成功
false失敗

ICollectionT< TYP >を再実装しています。

CAttributedVectorT< TYP, ATT >, CAttributedVectorT< BYTE, BYTE >で再実装されています。

TnbVector.h565 行目に定義があります。

◆ RemoveElements()

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

[削除] 要素削除.

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

ICollectionT< TYP >を再実装しています。

TnbVector.h409 行目に定義があります。

◆ RemoveEx()

bool RemoveEx ( INDEX  index)
inherited

[削除] 要素一つ削除.

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

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

◆ Serialize()

virtual void Serialize ( ISerializer _sr) const
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.h368 行目に定義があります。

◆ Set()

virtual bool Set ( INDEX  index,
const TYP &  t 
)
virtual

[設定] 要素の設定.

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

ICollectionT< TYP >を実装しています。

CAttributedVectorT< BYTE, BYTE >, CAutoVectorT< BYTE >, CAutoVectorT< CDrawersVector >, CAutoVectorT< CPointerHandleT< IDrawable > >, CAutoVectorT< IDrawable::Ptr >, CAutoVectorT< INDEX >, CAttributedVectorT< TYP, ATT >, CAutoVectorT< TYP >, CAutoVectorT< UINT >で再実装されています。

TnbVector.h265 行目に定義があります。

◆ SetElements()

virtual size_t SetElements ( size_t  size,
const TYP *  P = NULL 
)
virtual

[設定] 複数要素設定.

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

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

ICollectionT< TYP >を再実装しています。

CAttributedVectorT< BYTE, BYTE >, CAttributedVectorT< TYP, ATT >で再実装されています。

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

◆ SetEx()

bool SetEx ( INDEX  index,
const TYP &  t 
)
inherited

[設定] 要素の設定.

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

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

◆ SetIncrementSize()

void SetIncrementSize ( size_t  size)

[設定] 余白サイズ

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

TnbVector.h340 行目に定義があります。

◆ SetSize()

virtual bool SetSize ( size_t  size)
virtual

[操作] サイズ指定

覚え書き
大きくすることも小さくすることも出来ます。
大きくした時、そのデータはTYP()で埋められます。
引数
sizeサイズ
戻り値
true成功
false失敗

ICollectionT< TYP >を再実装しています。

CAttributedVectorT< TYP, ATT >, CAttributedVectorT< BYTE, BYTE >で再実装されています。

TnbVector.h618 行目に定義があります。

◆ 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< TYP > &  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インデックスが範囲外であることを示すためにスローされます。

CAttributedVectorT< TYP, ATT >, CAttributedVectorT< BYTE, BYTE >, COffsetAdapterT< TYP >, CListT< TYP, ATT >, CListT< TNB::CListQueueT< TYP > >で再実装されています。

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

◆ TrimBottom() [1/2]

size_t TrimBottom ( const TYP &  t)
inherited

[処理] 末尾トリム.

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

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

◆ TrimBottom() [2/2]

size_t TrimBottom ( const TYP &  t,
const IComparatorT< TYP > &  comparator 
)
inherited

[処理] 末尾トリム.

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

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

◆ Unlock()

virtual void Unlock ( void  ) const
virtual

[排他] アンロック

ISynchronizedを実装しています。

TnbVector.h359 行目に定義があります。