Como remover um elemento de uma matriz (bidimensional unidimensional)? - página 4

 
Dmitry Fedoseev:

Quais métodos? Que assinaturas?

Qualquer método.

 
Ilya Malev:

Qualquer método.

O que isso tem a ver com o assunto?

 
Dmitry Fedoseev:

Sim, nós trabalhamos como com uma dimensão. Não precisamos descrever a estrutura de dados - lemos tudo de uma vez.

 
ArrayCopy() funciona com apontadores.
 
Dmitry Fedoseev:

O que isso tem a ver com o assunto?

Você não pode definir uma função (por exemplo, excluir um elemento) com o mesmo nome (por exemplo, ArrayRemove) definida da mesma forma para matrizes de tamanhos diferentes (a menos que você seja um desenvolvedor de compilador MQL)

Além disso, você não poderá definir tal função com o mesmo nome, sobrecarregando várias variantes de chamadas

Você terá que escrevê-lo assim

ArrayRemove(var&[],int)

ArrayRemove2(var&[][],int)

ArrayRemove3(var&[][],int)

ArrayRemove4(var&[][][][],int)

Portanto, lidar com uma matriz multidimensional como uma matriz unidimensional também não faz sentido, a menos que você queira redefinir todas as funções da matriz em cada uma das classes que as utilizam

 
Muito bem, então.
 
Ilya Malev:

Você não pode definir uma função (por exemplo, remover um elemento) com o mesmo nome (por exemplo, ArrayRemove) definida da mesma maneira para matrizes de tamanhos diferentes (a menos que você seja um desenvolvedor de compilador MQL)

Além disso, você não poderá definir tal função com o mesmo nome, sobrecarregando várias variantes de chamadas

Você terá que escrevê-lo assim

ArrayRemove(var&[],int)

ArrayRemove2(var&[][],int)

ArrayRemove3(var&[][],int)

ArrayRemove4(var&[][][][],int)

Portanto, lidar com uma matriz multidimensional como uma matriz unidimensional não faz sentido, a menos que você queira redefinir todas as funções da matriz em cada classe que as usa.

Sim, mas isso não é uma coisa tão ruim.

 
Ilya Malev:

Você não pode definir uma função (por exemplo, remover um elemento) com o mesmo nome (por exemplo, ArrayRemove) definida da mesma maneira para matrizes de tamanhos diferentes (a menos que você seja um desenvolvedor de compilador MQL)

Além disso, você não poderá definir tal função com o mesmo nome, sobrecarregando várias variantes de chamadas

Você terá que escrevê-lo assim

ArrayRemove(var&[],int)

ArrayRemove2(var&[][],int)

ArrayRemove3(var&[][],int)

ArrayRemove4(var&[][][][],int)

Portanto, lidar com uma matriz multidimensional como uma matriz unidimensional não faz sentido, a menos que você queira redefinir todas as funções de trabalhar com matrizes novamente em cada uma das classes que as utilizam

Ilya, você está passando da técnica de programação para a declaração de problemas.

Rastejar para trás, fazer as coisas ao contrário.

Minha neta já está dormindo, caso contrário ela teria chamado sua atenção para o fato de que os elementos da matriz na memória MT estão continuamente dispostos.

 
Алексей Тарабанов:

os elementos da matriz na memória MT são dispostos continuamente.

E o que você acha que isso tem a ver com a tarefa em mãos (classe de tarefas - trabalho unificado com matrizes de diferentes dimensões através de funções)?

 

Por exemplo, você quer fazer uma função para remover um elemento de uma matriz independentemente de sua dimensionalidade. Ou você quer fazer uma classe que funcione com matrizes de diferentes dimensões. Você acha que pode fazer isso em mql?