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.
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.
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.
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)
{
// ..... ;
}
voidOnStart ()
{
int ar1[];
int ar2[][5];
int ar3[][6][2];
PackAndDel( ar1, 0, 1 );
PackAndDel( ar2, 4, 1 );
PackAndDel( ar3, 1, 3 );
}
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.
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 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 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ì):