Microsoft DirectX 8.0

CBaseList クラス

CBaseList クラスの階層

抽象リストの実装。CBaseList から派生した CGenericList クラス テンプレートはタイプ チェックと CBaseList クラスより単純な API を提供する。

宣言 : Wxlist.h

CBaseList クラスは Microsoft® Foundation Classes (MFC) ライブラリにある CObList の後で作成されている。リスト内の位置は POSITION 構造体によって示される。呼び出し元は POSITION 構造体の内部メンバにアクセスすべきではない、リスト ノードのポインタとして扱うべきだ。リスト内のオブジェクトの位置はオブジェクトが削除されるまで継続して有効である。

リストはそれを含むオブジェクトによるサポートを要求しない。ストレージ管理やオブジェクトのコピーは行わない。オブジェクトは複数のリストに存在し得る。

このクラスの約半数のメソッドはシングル オブジェクトである。これらのメソッドはメソッド名に I の接尾辞を持つ。他のメソッドは完全なリストとして動作する。たとえば、AddAfter メソッドはあるリストを他のリストに追加する、シングル オブジェクト操作は POSITION 値を返すか、失敗時は NULL を返す。リスト操作は成功時に TRUE を、失敗時に FALSE を返す。

Protected メンバ変数
m_Countリストの項目数。
m_pFirstリストの先頭ノードへのポインタ。
m_pLastリストの末尾ノードへのポインタ。
Protected メソッド
GetNextI指定した位置の項目を取得し、位置を進める。
GetI指定した位置の項目を取得する。
FindI指定した項目を持つ最初の位置を取得する。
RemoveHeadIリストの先頭項目を削除する。
RemoveTailIリストの末尾項目を削除する。
RemoveI指定した位置の項目を削除する。
AddTailIリストの末尾に項目を追加する。
AddHeadIリストの先頭に項目を追加する。
AddAfterI指定した位置の後に項目を挿入する。
AddBeforeI指定した位置の前に項目を挿入する。
Public メソッド
CBaseListコンストラクタ メソッド。
~CBaseListデストラクタ メソッド。
RemoveAllリストからすべてのノードを削除する。
GetHeadPositionIリストの先頭項目の位置を取得する。
GetTailPositionIリストの末尾項目の位置を取得する。
GetCountIリストの項目数を取得する。
Nextリストの次の位置を取得する。
Prevリストの前の位置を取得する。
AddHeadこのリストの前に他のリストを挿入する。
AddTailこのリストの後に他のリストを追加する。
AddAfter指定した位置の後にリストを挿入する。
AddBefore指定した位置の前にリストを挿入する。
MoveToTailリストを分割し、前側を他のリストの最後に追加する。
MoveToHeadリストを分割し、後ろ側を他のリストの前に挿入する。
Reverseリストの順番を逆転する。

CBaseList.m_Count

CBaseList クラス

リストの項目数。

構文

LONG m_Count;

CBaseList.m_pFirst

CBaseList クラス

リストの先頭ノードへのポインタ。

構文

CNode *m_pFirst;

CBaseList.m_pLast

CBaseList クラス

リストの末尾ノードへのポインタ。

構文

CNode *m_pLast;

CBaseList::AddAfter

CBaseList クラス

指定した位置の後にリストを挿入する。

構文

BOOL AddAfter(
    POSITION pos,
    CBaseList *pList
);

パラメータ

pos
この後ろにリストを挿入する位置。
pList
挿入するリストへのポインタ。

戻り値

成功なら TRUE、それ以外なら FALSE を返す。

注意

pos パラメータで指定される情報を含む既存の位置情報は有効のまま残ってしまう。このメソッドが失敗するなら、いくつかの項目が既に追加された可能性がある。

CBaseList::AddAfterI

CBaseList クラス

指定した位置の後に項目を挿入する。

構文

POSITION AddAfterI(
    POSITION pos,
    void *pObj
);

パラメータ

pos
この後ろに項目を挿入する位置。
pObj
追加する項目へのポインタ。

戻り値

挿入された項目の位置情報が返る。

注意

pos が NULL なら、このメソッドはリストの先頭に項目を追加した ( AddHeadI メソッドを呼び出したのと同じ)。

CBaseList::AddBefore

CBaseList クラス

指定した位置の前にリストを挿入する。

構文

BOOL AddBefore(
    POSITION pos,
    CBaseList *pList
);

パラメータ

pos
この前にリストを挿入する位置。
pList
追加するリストへのポインタ。

戻り値

成功なら TRUE、それ以外なら FALSE を返す。

注意

pos パラメータで指定される情報を含む既存の位置情報は有効のまま残ってしまう。このメソッドが失敗するなら、いくつかの項目が既に追加された可能性がある。

CBaseList::AddBeforeI

CBaseList クラス

指定した位置の前に項目を挿入する。

構文

POSITION AddBeforeI(
    POSITION pos,
    void *pObj
);

パラメータ

pos
この前に項目を挿入する位置。
pObj
項目へのポインタ。

戻り値

挿入された項目の位置情報が返る。

注意

pos が NULL である場合、このメソッドはリストの末尾に項目を追加する (AddTailI メソッドの呼び出しと同じ)。

CBaseList::AddHead

CBaseList クラス

このリストの前に他のリストを挿入する。

構文

BOOL AddHead(
    CBaseList *pList
);

パラメータ

pList
追加する項目リストへのポインタ。

戻り値

成功なら TRUE、それ以外なら FALSE を返す。

注意

メソッドが失敗するなら、いくつかの項目が既にリストに追加された可能性がある。

CBaseList::AddHeadI

CBaseList クラス

リストの最初に項目を追加する。

構文

POSITION AddHeadI(
    void *pObj
);

パラメータ

pObj
項目へのポインタ。

戻り値

新しい先頭位置を示す POSITION 値を返す。

注意

メソッドが失敗すると、戻り値は NULL 。

CBaseList::AddTail

CBaseList クラス

このリストの後に他のリストを追加する。

構文

BOOL AddTail(
    CBaseList *pList
);

パラメータ

pList
追加するリストへのポインタ。

戻り値

成功なら TRUE、それ以外なら FALSE を返す。

注意

メソッドが失敗するなら、いくつかの項目が既に追加された可能性がある。

CBaseList::AddTailI

CBaseList クラス

リストの終わりに項目を追加する。

構文

POSITION AddTailI(
    void *pObj
);

パラメータ

pObj
項目へのポインタ。

戻り値

新しい末尾位置を示す POSITION 値を返す。

注意

メソッドが失敗すると、戻り値は NULL 。

CBaseList::CBaseList

CBaseList クラス

コンストラクタ メソッド。

構文

CBaseList(
    TCHAR *pName,
    INT iItems
);

CBaseList(
    TCHAR *pName
);

パラメータ

pName
リスト名へのポインタ。
iItems
ノード キャッシュのサイズ。

注意

効率のため、CBaseList クラスはリスト ノードのキャッシュを維持する。リストが持つおおよその項目数が分かっているのなら、コンストラクタの第 1 バージョンを使うべきだ。第 2 バージョンはデフォルトのキャッシュ サイズを使用すること。

CBaseList::~CBaseList

CBaseList クラス

デストラクタ メソッド。

構文

~CBaseList(void);

CBaseList::FindI

CBaseList クラス

指定した項目を持つ最初の位置を取得する。

構文

POSITION FindI(
    void *pObj
);

パラメータ

pObj
項目へのポインタ。

戻り値

POSITION 値を返す、リスト内に項目がなければ NULL を返す。

CBaseList::GetCountI

CBaseList クラス

リストの項目数を取得する。

構文

int GetCountI(void);

戻り値

リストの項目数を返す。

CBaseList::GetHeadPositionI

CBaseList クラス

リストの先頭項目の位置を取得する。

構文

POSITION GetHeadPositionI(void);

戻り値

POSITION 値を返す、リストが"から"の場合 NULL を返す。

CBaseList::GetI

CBaseList クラス

指定した位置の項目を取得する。

構文

void *GetI(
    POSITION pos
);

パラメータ

pos
取得する項目の位置情報。

戻り値

項目へのポインタを返す。

注意

pos が NULL なら、メソッドは NULL を返す。

CBaseList::GetNextI

CBaseList クラス

指定した位置の項目を取得し、位置を進める。

構文

void *GetNextI(
    POSITION& rp
);

パラメータ

rp
POSITION 値への参照。

戻り値

項目へのポインタを返す。

注意

このメソッドは位置情報を次の位置に進める。位置情報がリストの末尾を越えたなら、メソッドはそれに NULL を設定する。

rp が NULL なら、メソッドは NULL を返す。

CBaseList::GetTailPositionI

CBaseList クラス

リストの末尾項目の位置を取得する。

構文

POSITION GetTailPositionI(void);

戻り値

POSITION 値を返す、リストに何も入っていないなら NULL を返す。

CBaseList::MoveToHead

CBaseList クラス

リストを分割し、後ろ側を他のリストの前に挿入する。

構文

BOOL MoveToHead(
    POSITION pos,
    CBaseList *pList
);

パラメータ

pos
リストを分割する位置情報。
pList
別のリストへのポインタ。

戻り値

成功なら TRUE、それ以外なら FALSE を返す。

注意

このメソッドは pos パラメータが指定する位置の前でリストを分割する。前側の部分はリストに残る。後ろ側の部分は他のリストの先頭に挿入される。

CBaseList::MoveToTail

CBaseList クラス

リストを分割し、前側を他のリストの最後に追加する。

構文

BOOL MoveToTail(
    POSITION pos,
    CBaseList *pList
);

パラメータ

pos
リストを分割する位置情報。
pList
他のリストへのポインタ。

戻り値

成功なら TRUE、それ以外なら FALSE を返す。

注意

このメソッドは pos パラメータが指定する位置の前でリストを分割する。後ろ側の部分はリストに残る。前側の部分は他のリストの末尾に追加される。

CBaseList::Next

CBaseList クラス

リストの次の位置を取得する。

構文

POSITION Next(
    POSITION pos
);

パラメータ

pos
POSITION 値

戻り値

pos が指定する位置の次の位置情報を返す。

注意

pos がリストの末尾の位置なら、メソッドは NULL を返す。pos が NULL なら、メソッドはリストの先頭位置を返す。

CBaseList::Prev

CBaseList クラス

リストの前の位置を取得する。

構文

POSITION Prev(
    POSITION pos
);

パラメータ

pos
POSITION 値。

戻り値

pos で指定される位置の前の位置情報を返す。

注意

pos がリストの先頭の位置なら、メソッドは NULL を返す。pos が NULL なら、メソッドはリストの末尾の位置を返す。

CBaseList::RemoveAll

CBaseList クラス

リストからすべてのノードを削除する。

構文

void RemoveAll(void);

注意

すべてのノードに含まれる項目の削除は呼び出し元の責任である。

CBaseList::RemoveHeadI

CBaseList クラス

リストの先頭項目を削除する。

構文

void *RemoveHeadI(void);

戻り値

項目のポインタを返す、リストに何も入っていないなら NULL を返す。

注意

このメソッドはリストからノードを削除するが、ノードに含まれる項目は削除しない。

CBaseList::RemoveI

CBaseList クラス

指定した位置の項目を削除する。

構文

void *RemoveI(
    POSITION pos
);

パラメータ

pos
削除する項目を示す POSITION 値。

戻り値

項目のポインタを返す。

注意

このメソッドはリストからノードを削除するが、ノードに含まれる項目は削除しない。

pos が NULL なら、メソッドは NULL を返す。

CBaseList::RemoveTailI

CBaseList クラス

リストの末尾項目を削除する。

構文

void *RemoveTailI(void);

戻り値

項目のポインタを返す、リストがからなら NULL を返す。

注意

このメソッドはリストからノードを削除するが、ノードに含まれる項目は削除しない。

CBaseList::Reverse

CBaseList クラス

リストの順番を逆転する

構文

void Reverse(void);