次の方法で共有


CObList::RemoveAt

この一覧から指定された要素を削除します。

void RemoveAt(
   POSITION position 
);

パラメーター

  • [position]
    一覧から削除する要素の位置。

解説

CObListから要素を削除すると、一覧からオブジェクトのポインターを削除します。また、オブジェクト自体は削除してください。

POSITION の値は、リストの有効な位置を表すようにする必要があります。これは、Microsoft Foundation Class ライブラリの assert のデバッグ バージョン。

次の表は CObList::RemoveAtに似ている他のメンバー関数を示します。

Class

メンバー関数

CPtrList

void RemoveAt( POSITION位置) ;

CStringList

void RemoveAt( POSITION位置) ;

使用例

要素をリストのイテレーション中に削除した場合は注意してください。次の例では GetNextPOSITION の有効な値を確実に削除の方法を示します。

CAge のクラスのリストについては、CObList::CObList を参照してください。

CObList list;
POSITION pos1, pos2;
CObject* pa;

list.AddHead(new CAge(21));
list.AddHead(new CAge(40));
list.AddHead(new CAge(65)); // List now contains (65 40, 21).
for (pos1 = list.GetHeadPosition(); (pos2 = pos1) != NULL;)
{
    if (*(CAge*) list.GetNext(pos1) == CAge(40))
    {
        pa = list.GetAt(pos2); // Save the old pointer for
                               //deletion.
        list.RemoveAt(pos2);
        delete pa; // Deletion avoids memory leak.
    }
}
#ifdef _DEBUG
   afxDump.SetDepth(1);
   afxDump << _T("RemoveAt example: ") << &list << _T("\n");
#endif      

このプログラムの結果は次のとおりです。:

RemoveAt example: A CObList with 2 elements

a CAge at $4C1E 65

a CAge at $4B22 21

必要条件

Header: afxcoll.h

参照

関連項目

CObList クラス

階層図