- ArrayBsearch
- ArrayCopy
- ArrayCompare
- ArrayFree
- ArrayGetAsSeries
- ArrayInitialize
- ArrayFill
- ArrayIsDynamic
- ArrayIsSeries
- ArrayMaximum
- ArrayMinimum
- ArrayPrint
- ArrayRange
- ArrayResize
- ArrayInsert
- ArrayRemove
- ArrayReverse
- ArraySetAsSeries
- ArraySize
- ArraySort
- ArraySwap
- ArrayToFP16
- ArrayToFP8
- ArrayFromFP16
- ArrayFromFP8
ArrayInsert
Вставляет в массив-приемник из массива-источника указанное число элементов, начиная с указанного индекса.
bool ArrayInsert(
|
Параметры
dst_array[]
[in][out] Массив-приемник, в который необходимо добавить элементы.
src_array[]
[in] Массив-источник, из которого необходимо добавить элементы.
dst_start
[in] Индекс в массиве-приемнике для вставки элементов из массива-источника.
src_start=0
[in] Индекс в массиве-, начиная с которого берутся элементы массива-источника для вставки.
count=WHOLE_ARRAY
[in] Количество добавляемых элементов из массива-источника. Значение WHOLE_ARRAY означает все элементы с указанного индекса до конца массива.
Возвращаемое значение
Возвращает true в случае успеха, иначе false. Чтобы получить информацию об ошибке, необходимо вызвать функцию GetLastError(). Возможные ошибки:
- 5052 – ERR_SMALL_ARRAY (параметры start и/или count заданы неверно или исходный массив src_array[] является пустым),
- 5056 – ERR_SERIES_ARRAY (массив не может быть изменен, индикаторный буфер),
- 4006 – ERR_INVALID_ARRAY (копирование в себя недопустимо, либо массивы имеют разный тип, либо массив фиксированного размера, который содержит объекты класса или структуры с деструктором),
- 4005 - ERR_STRUCT_WITHOBJECTS_ORCLASS (массив содержит не POD-структуры, то есть простое копирование невозможно),
- ошибки изменения размера массива-приемника dst_array[] – они приведены в описании функции ArrayRemove().
Примечание
Если функция используется для массива фиксированного размера, то сам размер массива-приемника dst_array[] не меняется, при этом начиная с позиции dst_start элементы массива-приемника сдвигаются вправо (последние count элементов "выпадают" ), а на освободившееся место происходит копирование элементов из массива-источника.
Нельзя вставлять элементы в динамические массивы, назначенные в качестве индикаторных буферов функцией SetIndexBuffer(). Для индикаторных буферов все операции по изменению размера производит исполняющая подсистема терминала.
В массиве-источнике элементы копируются, начиная с индекса src_start. Размер массива-источника при этом не изменяется. Добавляемые в массив-приемник элементы не являются ссылками на элементы массива-источника – это означает, что последующие изменения элементов в любом из двух массивов не отражаются на втором.
Пример:
//+------------------------------------------------------------------+
|
Смотри также
ArrayRemove, ArrayCopy, ArrayResize, ArrayFree