次の方法で共有


CObArray::InsertAt

更新 : 2007 年 11 月

配列の指定したインデックス位置に要素 (または別の配列のすべての要素) を挿入します。

void InsertAt(
   INT_PTR nIndex,
   CObject* newElement,
   INT_PTR nCount = 1 
);
void InsertAt(
   INT_PTR nStartIndex,
   CObArray* pNewArray 
);

パラメータ

  • nIndex
    整数インデックス。GetUpperBound が返す値より大きい値も指定できます。

  • newElement
    配列に挿入する CObject ポインタを指定します。newElement の値には、NULL 値も指定できます。

  • nCount
    要素を挿入する回数 (既定では 1)。

  • nStartIndex
    整数インデックス。GetUpperBound が返す値より大きい値も指定できます。

  • pNewArray
    配列に追加する要素を持つ別の配列。

解説

InsertAt の最初の構文は、1 つの要素 (または、その要素の複数のコピー) を配列の指定された位置に挿入します。挿入処理では、そのインデックス位置にある要素を (インデックスを増加することで) シフト アップし、さらにその位置以降にあるすべての要素を順次シフト アップします。

2 つ目の構文は、他の CObArray コレクションからすべての要素を nStartIndex で指定した位置から挿入します。

対照的に、SetAt 関数は、指定されている配列要素を置き換えるだけで、要素のシフトは行いません。

CObArray::InsertAt に類似している他のメンバ関数を以下に示します。

クラス

メンバ関数

CByteArray

void InsertAt( INT_PTRnIndex, BYTEnewElement, intnCount = 1 );

    throw( CMemoryException* );

void InsertAt( INT_PTRnStartIndex, CByteArray*pNewArray );

    throw( CMemoryException* );

CDWordArray

void InsertAt( INT_PTRnIndex, DWORDnewElement, intnCount = 1 );

    throw( CMemoryException* );

void InsertAt( INT_PTRnStartIndex, CDWordArray*pNewArray );

    throw( CMemoryException* );

CPtrArray

void InsertAt( INT_PTRnIndex, void*newElement, intnCount = 1 );

    throw( CMemoryException* );

void InsertAt( INT_PTRnStartIndex, CPtrArray*pNewArray );

    throw( CMemoryException* );

CStringArray

void InsertAt( INT_PTRnIndex, LPCTSTRnewElement, intnCount = 1 );

    throw( CMemoryException* );

void InsertAt( INT_PTRnStartIndex, CStringArray*pNewArray );

    throw( CMemoryException* );

CUIntArray

void InsertAt( INT_PTRnIndex, UINTnewElement, intnCount = 1 );

    throw( CMemoryException* );

void InsertAt( INT_PTRnStartIndex, CUIntArray*pNewArray );

    throw( CMemoryException* );

CWordArray

void InsertAt( INT_PTRnIndex, WORDnewElement, intnCount = 1 );

    throw( CMemoryException* );

void InsertAt( INT_PTRnStartIndex, CWordArray*pNewArray );

    throw( CMemoryException* );

使用例

すべてのコレクションの例で使われている CAge クラスのリストについては、CObList::CObList を参照してください。

CObArray arr;

arr.Add(new CAge(21)); // Element 0
arr.Add(new CAge(40)); // Element 1 (will become 2).
arr.InsertAt(1, new CAge(30));  // New element 1
#ifdef _DEBUG
   afxDump.SetDepth(1);
   afxDump << _T("InsertAt example: ") << &arr << _T("\n");
#endif      

このプログラムの実行結果は次のようになります。

InsertAt example: A CObArray with 3 elements

[0] = a CAge at $45C8 21

[1] = a CAge at $4646 30

[2] = a CAge at $4606 40

必要条件

ヘッダー : afxcoll.h

参照

参照

CObArray クラス

階層図

CObArray::SetAt

CObArray::RemoveAt

その他の技術情報

CObArray のメンバ