- 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
ArrayRemove
Remove o número especificado de elementos da matriz, iniciando no índice especificado.
bool ArrayRemove(
|
Parâmetros
array[]
[in][out] Matriz.
start
[in] Índice a partir do qual são excluídos os elementos da matriz.
count=WHOLE_ARRAY
[in] Número de elementos para excluir. O valor WHOLE_ARRAY indica a remoção de todos os elemento, do índice especificado até o final da matriz.
Valor retornado
Retorna true em caso de sucesso, caso contrário, false. Para obter informações de erro, chame a função GetLastError(). Possíveis erros:
- 5052 ERR_SMALL_ARRAY (o valor start é muito grande),
- 5056 ERR_SERIES_ARRAY (a matriz não pode ser alterada, buffer de indicador),
- 4003 ERR_INVALID_PARAMETER (o valor count é muito grande),
- 4005 - ERR_STRUCT_WITHOBJECTS_ORCLASS (matriz de tamanho fixo que contém objetos complexos com um destruidor),
- 4006 - ERR_INVALID_ARRAY (matriz de tamanho fixo que contém objetos de estruturas ou de classes com destruidores).
Observação
Se a função é usada para uma matriz de tamanho fixo, o tamanho da matriz em si não muda: neste caso, a cauda remanescente é fisicamente copiada para a posição start. Para um entendimento preciso de como funciona a função, veja o exemplo abaixo. Cópia física significa que os objetos copiados não são criados chamando o construtor ou o operador de cópia, mas, sim, simplesmente copiando a representação binária do objeto. É por esse motivo que é proibido aplicar a função ArrayRemove() à uma matriz de tamanho fixo contendo objetos com um destruidor (é ativado ERR_INVALID_ARRAY ou ERR_STRUCT_WITHOBJECTS_ORCLASS) Como ao remover tal objeto, o destruidor deve ser chamado duas vezes - para o objeto inicial e para sua cópia.
É impossível excluir elementos de matrizes dinâmicas, atribuídas como buffers de indicador, através da função SetIndexBuffer(), isso resultará no erro ERR_SERIES_ARRAY. Para buffers de indicador, todas as operações de redimensionamento são executadas pelo subsistema em execução do terminal.
Exemplo:
//+------------------------------------------------------------------+
|
Veja também
ArrayInsert, ArrayCopy, ArrayResize, ArrayFree