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

 
Por supuesto, podría ignorar los costes y gastos y reescribir un array de cualquier dimensión en un array unidimensional recién creado en #define antes de llamar a la función (y luego reescribirlo de nuevo), pero los costes serán lamentables.
 
Alexey Viktorov:

¿Por qué no ayuda?

...

Porque ni el número de dimensiones del array ni el tamaño de ninguna de las dimensiones provocará la sobrecarga. Y pasar parámetros que se pueden definir automáticamente a una función no es una decisión muy acertada.

 
Dmitry Fedoseev:

Porque ni el número de dimensiones del array ni el tamaño de ninguna de las dimensiones provocará la sobrecarga. Y pasar parámetros que se pueden definir automáticamente a una función no es precisamente una decisión inteligente.

Sí, ya me he dado cuenta de que es una pérdida de tiempo.

 
En definitiva, es un tema que merece la pena, pero para mí es muy amplio y complejo, algo que requiere años de experiencia para llegar a él.
 
Seric29:
En definitiva, es un tema que merece la pena, pero es muy amplio y complicado para mí, algo que requiere años de experiencia para llegar a él.

No entres en demasiados detalles, quieren hacerlo todo demasiado universal, pero puedes vivir perfectamente sin ello.

 
En realidad, en la primera respuesta al hilo, se dio una receta universal. Sólo tienes que encenderlo y probarlo tú mismo, pero no puedes masticarlo todo y metértelo en la boca, ¿verdad?
 
Ilya Malev:
En realidad, en la primera respuesta del hilo se dio una receta universal. Sólo tienes que encenderlo y probarlo tú mismo, pero no puedes masticarlo todo y metértelo en la boca, ¿verdad?

Ilya, ¿realmente te tomas el tema como algo serio? Sólo para jugar y divertirse un poco... Has dado una respuesta que funciona: todo a un array unidimensional y viceversa, independientemente de la dimensionalidad. Mi respuesta es la misma que la tuya, sólo hay pequeños detalles técnicos que no cambian la esencia. No he entendido lo de la definición y los costes deplorables.

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

Ilya, ¿realmente te tomas el tema como algo serio? Sólo para jugar y divertirse un poco... Has dado una respuesta que funciona: todo a un array unidimensional y viceversa, independientemente de la dimensionalidad. Mi respuesta es la misma que la tuya, sólo hay pequeños detalles técnicos que no cambian la esencia. No entiendo a qué te refieres con lo del coste y el deplorable coste.

No, por el contrario no es grave, acabo de TC explicó de nuevo dónde buscar una solución (primer puesto es más probable que funcione, aunque no he comprobado). Y entonces comenzó todo tipo de charlas :)

Aunque la situación es triste con estas matrices en μl hecho, otra cosa es que no sean necesarias en el 99% de los casos. Cuando se tiene la cabeza en los hombros, cualquier codificador utiliza estructuras o incluso objetos.

La definición que escribí resuelve el problema que puse)) - Una llamada a ArrayDel ejecuta el código, escrito por Dmitry, para diferentes arrays. Es cierto que no se trata de una función, sino de una "cataplasma de hombre muerto", como se dice. Hablando de definir los costes, si realmente quieres ejecutar un parámetro int ar[] para cualquier array, puedes hacer lo siguiente (esto es una simplificación, en realidad el número de medidas debería pasarse ahí también):


#property strict

#define  PackAndDel(A,S,C) { int tmp[]; ArrayCopy(tmp,A); ArrayDelete(tmp,S,C); ArrayCopy(A,tmp); }

void ArrayDelete(int &ar[], int start, int count)
 {

  // ..... ;

 }



void OnStart ()

{

  int ar1[];

  int ar2[][5];

  int ar3[][6][2];

  PackAndDel( ar1, 0, 1 );

  PackAndDel( ar2, 4, 1 );

  PackAndDel( ar3, 1, 3 );

}