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.
Класс |
Функция-член |
---|---|
void InsertAt( INT_PTR nIndex, BYTE newElement, int nCount=1 ); выполнение (CMemoryException*); void InsertAt( INT_PTR nStartIndex, CByteArray* pNewArray ); выполнение (CMemoryException*); |
|
void InsertAt( INT_PTR nIndex, DWORD newElement, int nCount=1 ); выполнение (CMemoryException*); void InsertAt( INT_PTR nStartIndex, CDWordArray* pNewArray ); выполнение (CMemoryException*); |
|
void InsertAt( INT_PTR nIndex, void* newElement, int nCount=1 ); выполнение (CMemoryException*); void InsertAt( INT_PTR nStartIndex, CPtrArray* pNewArray); выполнение (CMemoryException*); |
|
void InsertAt( INT_PTR nIndex, LPCTSTR newElement, int nCount=1 ); выполнение (CMemoryException*); void InsertAt( INT_PTR nStartIndex, CStringArray* pNewArray ); выполнение (CMemoryException*); |
|
void InsertAt( INT_PTR nIndex, UINT newElement, int nCount=1 ); выполнение (CMemoryException*); void InsertAt( INT_PTR nStartIndex, CUIntArray* pNewArray ); выполнение (CMemoryException*); |
|
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