- 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
Inserta en la matriz-receptor el número indicado de elementos, comenzando por el índice establecido.
bool ArrayInsert(
|
Parámetros
dst_array[]
[in][out] Matriz-receptor a la que se deben añadir los elementos.
src_array[]
[in] Matriz-fuenete desde la que se deben añadir los elementos.
dst_start
[in] Índice en la matriz-receptor para la inserción de los elementos de la matriz-fuente.
src_start=0
[in] Índice de la matriz-fuente, a partir del cual se toman los elementos de la matriz-fuente para la inserción.
count=WHOLE_ARRAY
[in] Número de elementos a añadir desde la matriz-fuente. El valor WHOLE_ARRAY indica que se insertarán todos los elementos desde el índice establecido hasta el final de la matriz.
Valor retornado
Retorna true en caso de éxito, de lo contrario, false. Para obtener información sobre el error, es necesario llamar la función GetLastError(). Posibles errores:
- 5052 ERR_SMALL_ARRAY (los parámetros start y/o count se han indicado incorrectamente o la matriz-fuente src_array[] está vacía),
- 5056 ERR_SERIES_ARRAY (la matriz no puede modificarse, búfer de indicador),
- 4006 ERR_INVALID_ARRAY (el copiado en sí no está permitido, o bien las matrices tienen tipo distinto, o bien una matriz de tamaño fijo que contiene objetos de clase o estructuras con destructores),
- 4005 - ERR_STRUCT_WITHOBJECTS_ORCLASS (la matriz no contiene estructuras POD, es decir, el copiado simple no es posible),
- errores de cambio de tamaño de la matriz-receptor dst_array[] estos se muestran en la descripción de la función ArrayRemove().
Observación
Si la función se usa para una matriz de tamaño fijo, el propio tamaño de la matriz-receptor dst_array[] no cambia, en este caso, además, comenzando desde la posición dst_start, los elementos de la matriz-receptor se desplazan a la derecha (los últimos elementos count "se caen"), y en el lugar liberado tiene lugar el copiado de elementos de la matriz-fuente.
No se puede insertar elementos en matrices dinámicas designadas como búferes de indicador con la función SetIndexBuffer(). Para los búferes de indicador, todas las operaciones de cambio de tamaño son realizadas por el subsistema ejecutor del terminal.
En la matriz-fuente se copian los elementos, comenzando por el índice src_start. El tamaño de la matriz-fuente, en este caso, no cambia. Los elementos añadidos a la matriz-receptor no son enlaces a los elementos de la matriz-fuente, esto significa que los posteriores cambios de los elementos en cualquiera de las dos matrices no se reflejarán en la segunda.
Ejemplo:
//+------------------------------------------------------------------+
|
Mire también
ArrayRemove, ArrayCopy, ArrayResize, ArrayFree