Поделиться через


CObArray::InsertAt

Вставляет элемент (или все элементы в других массив) по указанному индексу.

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 вставляет один элемент (или несколько копий элемента) на заданный индекс в массиве.В процессе его сдвигает вверх (путем увеличения индекс) существующему элементу для этого индекса, и он сдвигает вверх по всем элементам над ним.

Вторая версия вставляет все элементы из другой коллекции CObArray, начиная с позиции nStartIndex.

Функция SetAt, напротив, заменяет одно определила элемент массива и не сдвигает элементов.

В следующей таблице приведены другие функции-члены, которые похожи на CObArray::InsertAt.

Класс

Функция-член

CByteArray

void InsertAt( INT_PTR nIndex, BYTE newElement, int nCount=1 );

    выполнение (CMemoryException*);

void InsertAt( INT_PTR nStartIndex, CByteArray* pNewArray );

    выполнение (CMemoryException*);

CDWordArray

void InsertAt( INT_PTR nIndex, DWORD newElement, int nCount=1 );

    выполнение (CMemoryException*);

void InsertAt( INT_PTR nStartIndex, CDWordArray* pNewArray );

    выполнение (CMemoryException*);

CPtrArray

void InsertAt( INT_PTR nIndex, void* newElement, int nCount=1 );

    выполнение (CMemoryException*);

void InsertAt( INT_PTR nStartIndex, CPtrArray* pNewArray);

    выполнение (CMemoryException*);

CStringArray

void InsertAt( INT_PTR nIndex, LPCTSTR newElement, int nCount=1 );

    выполнение (CMemoryException*);

void InsertAt( INT_PTR nStartIndex, CStringArray* pNewArray );

    выполнение (CMemoryException*);

CUIntArray

void InsertAt( INT_PTR nIndex, UINT newElement, int nCount=1 );

    выполнение (CMemoryException*);

void InsertAt( INT_PTR nStartIndex, CUIntArray* pNewArray );

    выполнение (CMemoryException*);

CWordArray

void InsertAt( INT_PTR nIndex, WORD newElement, int nCount=1 );

    выполнение (CMemoryException*);

void InsertAt( INT_PTR nStartIndex, CWordArray* pNewArray );

    выполнение (CMemoryException*);

Пример

См. перечисление CObList::CObList для класса CAge, используемого во всех примерах коллекции.

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

Требования

Header: afxcoll.h

См. также

Ссылки

Класс CObArray

Диаграмма иерархии

CObArray::SetAt

CObArray::RemoveAt