CObArray::RemoveAt
配列の指定したインデックスに起動する一つ以上の要素を削除します。
void RemoveAt(
INT_PTR nIndex,
INT_PTR nCount = 1
);
パラメーター
nIndex
0 にゼロ以上で GetUpperBoundによって返される値により小さいか等しいの整数のインデックス。nCount
削除する要素の数を指定します。
解説
プロセスでは、削除された要素の上のすべての要素の下に移動します。これは、配列の上限をデクリメントしますが、メモリを解放しません。
削除の位置の上の配列に含まれるより多くの要素を削除しようとすると、assert ライブラリのデバッグ バージョン。
RemoveAt 関数は、配列の CObject のポインターを削除しますが、オブジェクト自体は削除されません。
次の表は CObArray::RemoveAtに似ている他のメンバー関数を示します。
Class |
メンバー関数 |
---|---|
void RemoveAt( INT_PTR nIndex, INT_PTR nCount = 1 ); |
|
void RemoveAt( INT_PTR nIndex, INT_PTR nCount = 1 ); |
|
void RemoveAt( INT_PTR nIndex, INT_PTR nCount = 1 ); |
|
void RemoveAt( INT_PTR nIndex, INT_PTR nCount = 1 ); |
|
void RemoveAt( INT_PTR nIndex, INT_PTR nCount = 1 ); |
|
void RemoveAt( INT_PTRnIndex, INT_PTRの nCount = 1 ); |
使用例
すべてのコレクションの例で使用されている CAge のクラスのリストについては、CObList::CObList を参照してください。
CObArray arr;
CObject* pa;
arr.Add(new CAge(21)); // Element 0
arr.Add(new CAge(40)); // Element 1
if((pa = arr.GetAt(0)) != NULL)
{
arr.RemoveAt(0); // Element 1 moves to 0.
delete pa; // Delete the original element at 0.
}
#ifdef _DEBUG
afxDump.SetDepth(1);
afxDump << _T("RemoveAt example: ") << &arr << _T("\n");
#endif
このプログラムの結果は次のとおりです。:
RemoveAt example: A CObArray with 1 elements
[0] = a CAge at $4606 40
必要条件
Header: afxcoll.h