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

 
Aliaksandr Hryshyn:
¿Hay algún problema con la definición de la dimensionalidad?

No hay ningún problema con la definición. Hay problemas con la obtención de arrays de diferentes dimensiones como parámetro de la función.

 
Aquí los arrays no tienen más de 4 dimensiones. Así que puedes escribir 4 funciones diferentes y ya está.
 
Ilya Malev:

No hay ningún problema con la definición. Hay problemas con la obtención de arrays de diferentes dimensiones como parámetro de la función.

Utiliza las clases para estas cosas. Pasar una instancia de una clase con diferentes arrays a la función...
 
Dmitry Fedoseev:
Los arrays no tienen más de 4 dimensiones aquí. Así que puedes escribir 4 funciones diferentes y ya está.

No puedes utilizar arrays de tamaño superior a 1 en absoluto, y si quieres manipular algo con diferentes campos, puedes utilizar un array de estructuras o una lista de objetos. Personalmente, siempre lo hago cuando escribo algo. Pero en el código de otra persona, que también encuentro, también me encuentro con opciones como un array multidimensional. Y aquí comienza la parte divertida...

 
Aliaksandr Hryshyn:
Utiliza las clases para estas cosas. Pasar una instancia de una clase con diferentes arrays a la función...

Intenta definir una clase para que una llamada a una función aplicada a un array de diferentes dimensiones tenga el mismo aspecto.

 
Ilya Malev:

Preguntas normales, deberías haber ignorado los paréntesis en el título del hilo. Sin conocer el número de elementos - se puede. Si no se conoce la dimensionalidad, no se puede.

Déjame contarte un terrible secreto. Un array es unidimensional. De cualquier tipo. Ya te dije...

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

Te contaré un terrible secreto. El array es unidimensional. De cualquier tipo. Ya te he dicho...


Ilya Malev:

¿Y qué tiene que ver esto con tu tarea (clase de tareas - trabajo unificado con arrays de diferente dimensión a través de funciones)?

 
Ilya Malev:

Intenta definir una clase para que una llamada a una función de un array de diferentes dimensiones tenga el mismo aspecto.

Me refiero a que deberías definir la(s) matriz(s) requerida(s) en una clase, y pasarle a la función una instancia de esa clase.
 

Un fenómeno interesante...

Cuando se escribe una función para la colección, surge la pregunta: ¿es mejor que funcione rápido (sin comprobación), o a prueba de tontos, para poder comprobar y corregir la razonabilidad de los parámetros?

void ArrayDelete(int & a[],int Start,int Count=1){
   ArrayCopy(a,a,Start,Start+Count);
   ArrayResize(a,ArraySize(a)-Count);
}

¿O con una protección infalible, para poder comprobar y corregir parámetros razonables? Aquí se ve que la versión rápida no es digna de una colección, porque es fácil de escribir y no es muy útil. Y la variante con todos los controles es buena sólo como pieza de museo, porque no necesita frenos innecesarios. Y por eso no lo necesitas en absoluto.

 
Aliaksandr Hryshyn:
Me refiero a que la(s) matriz(s) requerida(s) debe(n) ser definida(s) en una clase y una instancia de esta clase debe ser pasada a una función.

Si vemos el problema de esta manera, entonces las matrices multidimensionales no deberían declararse en absoluto, sino que deberían utilizarse matrices de estructuras con diferentes campos. Pero la cuestión es diferente: ¿qué podemos hacer con una matriz existente de dimensiones arbitrarias (desconocidas de antemano)?