Come si rimuove un elemento da un array (unidimensionale bidimensionale)? - pagina 9

 
Potreste, naturalmente, ignorare i costi e le spese e riscrivere un array di qualsiasi dimensione in un array 1-dimensionale appena creato in #define prima di chiamare la funzione (e poi riscriverlo di nuovo), ma i costi saranno pietosi.
 
Alexey Viktorov:

Perché non aiuta?

...

Perché né il numero di dimensioni dell'array né la dimensione di una qualsiasi delle dimensioni scatenano l'overloading. E passare parametri che possono essere definiti automaticamente in una funzione non è una decisione molto saggia.

 
Dmitry Fedoseev:

Perché né il numero di dimensioni dell'array né la dimensione di una qualsiasi delle dimensioni scatenano l'overloading. E passare parametri che possono essere definiti automaticamente in una funzione non è esattamente una decisione saggia.

Sì, ho già capito che è una perdita di tempo.

 
Tutto sommato, è un argomento utile, ma è molto ampio e complesso per me, qualcosa che richiede anni di esperienza per arrivarci.
 
Seric29:
Tutto sommato, è un argomento utile, ma è molto ampio e complicato per me, qualcosa che richiede anni di esperienza per arrivarci.

Non entrare troppo nei dettagli, vogliono rendere tutto troppo universale, ma si può vivere benissimo senza.

 
In realtà, nella prima risposta al thread, è stata data una ricetta universale. Dovete solo accenderlo e provarlo voi stessi, ma non potete masticarlo tutto e mettervelo in bocca, vero?
 
Ilya Malev:
In realtà nella prima risposta del thread è stata data una ricetta universale. Dovete solo accenderlo e testarlo voi stessi, ma non potete masticarlo tutto e mettervelo in bocca, vero?

Ilya, prendi davvero l'argomento come qualcosa di serio? Solo per giocare e divertirsi un po'... Hai dato una risposta funzionante: tutto in un array unidimensionale e ritorno, indipendentemente dalla dimensionalità. La mia risposta è la stessa della tua, ci sono solo piccoli dettagli tecnici che non cambiano l'essenza. Non ho capito il punto della definizione e dei costi deplorevoli.

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

Ilya, prendi davvero l'argomento come qualcosa di serio? Solo per giocare e divertirsi un po'... Hai dato una risposta funzionante: tutto in un array unidimensionale e ritorno, indipendentemente dalla dimensionalità. La mia risposta è la stessa della tua, ci sono solo piccoli dettagli tecnici che non cambiano l'essenza. Non capisco cosa intendi per il costo e il costo deplorevole.

No, al contrario non è grave, ho appena TC spiegato di nuovo dove cercare una soluzione (primo post è più probabile che funzioni, anche se non ho controllato). E poi ha iniziato ogni sorta di chiacchiere :)

Anche se la situazione è triste con questi array in μl infatti, un'altra cosa è che non sono necessari nel 99% dei casi. Quando si ha la testa sulle spalle, qualsiasi codificatore usa strutture o anche oggetti.

La definizione che ho scritto risolve il problema che ho impostato)) - Una chiamata ad ArrayDel esegue il codice, scritto da Dmitry, per diversi array. È vero, questa non è una funzione, ma un "cataplasma del morto", come si dice. Parlando dei costi di definizione, se volete davvero eseguire un parametro int ar[] per qualsiasi array, potete fare come segue (questa è una semplificazione, in realtà il numero di misure dovrebbe essere passato anche lì):


#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 );

}
Motivazione: