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

 
Dmitry Fedoseev:

Quali metodi? Quali firme?

Qualsiasi metodo.

 
Ilya Malev:

Qualsiasi metodo.

Cosa c'entra questo?

 
Dmitry Fedoseev:

Sì, lavoriamo come con una sola dimensione. Non abbiamo bisogno di descrivere la struttura dei dati - leggiamo tutto in una riga.

 
ArrayCopy() funziona con i puntatori.
 
Dmitry Fedoseev:

Cosa c'entra questo?

Non si può definire una funzione (ad esempio, cancellare un elemento) con lo stesso nome (ad esempio, ArrayRemove) definito allo stesso modo per array di dimensioni diverse (a meno che non siate uno sviluppatore di compilatori MQL)

Inoltre, non potrete definire una tale funzione con lo stesso nome, sovraccaricando diverse varianti di chiamate

Dovrete scriverlo in questo modo

ArrayRemove(var&[],int)

ArrayRemove2(var&[][],int)

ArrayRemove3(var&[][],int)

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

Quindi gestire un array multidimensionale come un array unidimensionale non ha nemmeno senso, a meno che non vogliate ridefinire di nuovo tutte le funzioni di array in ciascuna delle classi che le utilizzano

 
Va bene, allora.
 
Ilya Malev:

Non si può definire una funzione (ad esempio rimuovere un elemento) con lo stesso nome (ad esempio ArrayRemove) definito nello stesso modo per array di dimensioni diverse (a meno che non siate uno sviluppatore di compilatori MQL)

Inoltre, non potrete definire una tale funzione con lo stesso nome, sovraccaricando diverse varianti di chiamate

Dovrete scriverlo in questo modo

ArrayRemove(var&[],int)

ArrayRemove2(var&[][],int)

ArrayRemove3(var&[][],int)

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

Quindi gestire un array multidimensionale come un array unidimensionale non ha senso, a meno che non vogliate ridefinire di nuovo tutte le funzioni di array in ogni classe che le usa

Sì, ma non è una cosa così negativa.

 
Ilya Malev:

Non si può definire una funzione (ad esempio rimuovere un elemento) con lo stesso nome (ad esempio ArrayRemove) definito nello stesso modo per array di dimensioni diverse (a meno che non siate uno sviluppatore di compilatori MQL)

Inoltre, non potrete definire una tale funzione con lo stesso nome, sovraccaricando diverse varianti di chiamate

Dovrete scriverlo in questo modo

ArrayRemove(var&[],int)

ArrayRemove2(var&[][],int)

ArrayRemove3(var&[][],int)

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

Quindi gestire un array multidimensionale come un array unidimensionale non ha senso, a meno che non vogliate ridefinire tutte le funzioni di lavoro con gli array di nuovo in ciascuna delle classi che li utilizzano

Ilya, stai passando dalla tecnica di programmazione alla dichiarazione del problema.

Strisciare all'indietro, fare le cose al contrario.

Mia nipote sta già dormendo, altrimenti avrebbe attirato la vostra attenzione sul fatto che gli elementi dell'array nella memoria MT sono disposti continuamente.

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

gli elementi dell'array nella memoria MT sono disposti in modo continuo.

E cosa pensate che questo abbia a che fare con il compito in questione (classe di compiti - lavoro unificato con array di diverse dimensioni tramite funzioni)?

 

Per esempio, volete fare una funzione per rimuovere un elemento da un array indipendentemente dalla sua dimensione. Oppure volete fare una classe che lavori con array di diverse dimensioni. Pensi di poterlo fare in mql?

Motivazione: