Wie entferne ich ein Element aus einem Array (eindimensional und zweidimensional)? - Seite 4

 
Dmitry Fedoseev:

Welche Methoden? Welche Unterschriften?

Beliebige Methoden.

 
Ilya Malev:

Beliebige Methoden.

Was hat das damit zu tun?

 
Dmitry Fedoseev:

Ja, wir arbeiten wie mit eindimensionalen. Wir brauchen die Datenstruktur nicht zu beschreiben - wir lesen alles in einer Zeile.

 
ArrayCopy() arbeitet mit Zeigern.
 
Dmitry Fedoseev:

Was hat das damit zu tun?

Sie können keine Funktion (z.B. Löschen eines Elements) mit demselben Namen (z.B. ArrayRemove) für Arrays unterschiedlicher Größe auf dieselbe Weise definieren (es sei denn, Sie sind ein MQL-Compiler-Entwickler)

Außerdem ist es nicht möglich, eine solche Funktion mit demselben Namen zu definieren und mehrere Varianten von Aufrufen zu überladen

Sie müssen es so schreiben

ArrayRemove(var&[],int)

ArrayRemove2(var&[][],int)

ArrayRemove3(var&[][],int)

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

Ein mehrdimensionales Array als ein eindimensionales Array zu behandeln, macht also auch keinen Sinn, es sei denn, Sie wollen alle Array-Funktionen in jeder der Klassen, die sie verwenden, neu definieren

 
Also gut.
 
Ilya Malev:

Sie können keine Funktion (z.B. Entfernen eines Elements) mit demselben Namen (z.B. ArrayRemove) definieren, die auf dieselbe Weise für Arrays unterschiedlicher Größe definiert ist (es sei denn, Sie sind ein MQL-Compiler-Entwickler)

Außerdem ist es nicht möglich, eine solche Funktion mit demselben Namen zu definieren und mehrere Varianten von Aufrufen zu überladen

Sie müssen es so schreiben

ArrayRemove(var&[],int)

ArrayRemove2(var&[][],int)

ArrayRemove3(var&[][],int)

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

Ein mehrdimensionales Array als ein eindimensionales Array zu behandeln, macht also keinen Sinn, es sei denn, Sie wollen alle Array-Funktionen in jeder Klasse, die sie verwendet, neu definieren

Ja, aber das ist gar nicht so schlecht.

 
Ilya Malev:

Sie können keine Funktion (z.B. Entfernen eines Elements) mit demselben Namen (z.B. ArrayRemove) definieren, die auf dieselbe Weise für Arrays unterschiedlicher Größe definiert ist (es sei denn, Sie sind ein MQL-Compiler-Entwickler)

Außerdem ist es nicht möglich, eine solche Funktion mit demselben Namen zu definieren und mehrere Varianten von Aufrufen zu überladen

Sie müssen es so schreiben

ArrayRemove(var&[],int)

ArrayRemove2(var&[][],int)

ArrayRemove3(var&[][],int)

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

Es macht also keinen Sinn, ein mehrdimensionales Array als ein eindimensionales Array zu behandeln, es sei denn, Sie wollen alle Funktionen zur Arbeit mit Arrays in jeder der Klassen, die sie verwenden, neu definieren

Ilja, du gehst von der Programmiertechnik zur Problemstellung über.

Rückwärts kriechen, Dinge rückwärts tun.

Meine Enkelin schläft bereits, sonst hätte sie Sie darauf aufmerksam gemacht, dass die Array-Elemente im MT-Speicher kontinuierlich angeordnet sind.

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

die Array-Elemente im MT-Speicher sind kontinuierlich angeordnet.

Und was hat das Ihrer Meinung nach mit der vorliegenden Aufgabe zu tun (Aufgabenklasse - einheitliche Arbeit mit Arrays verschiedener Dimensionen über Funktionen)?

 

Sie möchten zum Beispiel eine Funktion erstellen, die ein Element aus einem Array entfernt, unabhängig von dessen Dimensionalität. Oder Sie möchten eine Klasse erstellen, die mit Arrays verschiedener Dimensionen arbeitet. Glauben Sie, dass Sie das in mql tun können?