¿Cómo puedo eliminar un elemento de una matriz (unidimensional bidimensional)? - página 4

 
Dmitry Fedoseev:

¿Qué métodos? ¿Qué firmas?

Cualquier método.

 
Ilya Malev:

Cualquier método.

¿Qué tiene eso que ver?

 
Dmitry Fedoseev:

Sí, trabajamos como con una dimensión. No es necesario describir la estructura de los datos: lo leemos todo en una fila.

 
ArrayCopy() funciona con punteros.
 
Dmitry Fedoseev:

¿Qué tiene eso que ver?

No se puede definir una función (por ejemplo, eliminar un elemento) con el mismo nombre (por ejemplo, ArrayRemove) definida de la misma manera para arrays de diferentes tamaños (a menos que sea un desarrollador de compiladores MQL)

Además, no podrá definir dicha función con el mismo nombre, sobrecargando varias variantes de llamadas

Tendrás que escribirlo así

ArrayRemove(var&[],int)

ArrayRemove2(var&[][],int)

ArrayRemove3(var&[][],int)

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

Así que manejar un array multidimensional como un array unidimensional tampoco tiene sentido, a menos que quieras redefinir todas las funciones de array de nuevo en cada una de las clases que las utilizan

 
Muy bien, entonces.
 
Ilya Malev:

No se puede definir una función (por ejemplo, eliminar un elemento) con el mismo nombre (por ejemplo, ArrayRemove) definida de la misma manera para matrices de diferentes tamaños (a menos que sea un desarrollador de compiladores MQL)

Además, no podrá definir dicha función con el mismo nombre, sobrecargando varias variantes de llamadas

Tendrás que escribirlo así

ArrayRemove(var&[],int)

ArrayRemove2(var&[][],int)

ArrayRemove3(var&[][],int)

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

Así que manejar un array multidimensional como un array unidimensional no tiene sentido, a menos que quieras redefinir todas las funciones de array de nuevo en cada clase que las utilice

Sí, pero eso no es tan malo.

 
Ilya Malev:

No se puede definir una función (por ejemplo, eliminar un elemento) con el mismo nombre (por ejemplo, ArrayRemove) definida de la misma manera para matrices de diferentes tamaños (a menos que sea un desarrollador de compiladores MQL)

Además, no podrá definir dicha función con el mismo nombre, sobrecargando varias variantes de llamadas

Tendrás que escribirlo así

ArrayRemove(var&[],int)

ArrayRemove2(var&[][],int)

ArrayRemove3(var&[][],int)

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

Así que manejar un array multidimensional como un array unidimensional no tiene sentido, a no ser que quieras redefinir de nuevo todas las funciones de trabajo con arrays en cada una de las clases que los utilizan

Ilya, estás pasando de la técnica de programación al planteamiento del problema.

Arrastrarse hacia atrás, hacer cosas al revés.

Mi nieta ya está dormida, de lo contrario le habría llamado la atención sobre el hecho de que los elementos de la matriz en la memoria MT están continuamente ordenados.

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

los elementos de la matriz en la memoria MT están dispuestos de forma continua.

¿Y qué crees que tiene esto que ver con la tarea en cuestión (clase de tareas - trabajo unificado con arrays de diferentes dimensiones a través de funciones)?

 

Por ejemplo, quieres hacer una función para eliminar un elemento de un array independientemente de su dimensionalidad. O quieres hacer una clase que trabaje con arrays de diferentes dimensiones. ¿Crees que se puede hacer eso en mql?