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

 
Aliaksandr Hryshyn:
Gibt es ein Problem bei der Definition der Dimensionalität?

Es gibt kein Problem mit dieser Definition. Es gibt Probleme mit dem Abrufen von Arrays mit unterschiedlichen Dimensionen als Funktionsparameter.

 
Arrays haben hier nicht mehr als 4 Dimensionen. Sie können also 4 verschiedene Funktionen schreiben und das war's.
 
Ilya Malev:

Es gibt kein Problem mit dieser Definition. Es gibt Probleme mit dem Abrufen von Arrays unterschiedlicher Dimensionen als Funktionsparameter.

Verwenden Sie für solche Dinge Klassen. Übergeben Sie eine Instanz einer Klasse mit verschiedenen Arrays an die Funktion...
 
Dmitry Fedoseev:
Arrays haben hier nicht mehr als 4 Dimensionen. Sie können also 4 verschiedene Funktionen schreiben und das war's.

Sie können die Verwendung von Arrays mit einer Dimension größer als 1 ganz vermeiden, und wenn Sie etwas mit verschiedenen Feldern manipulieren wollen, können Sie ein Array von Strukturen oder eine Liste von Objekten verwenden. Ich persönlich mache das immer, wenn ich selbst etwas schreibe. Aber im Code eines anderen, dem ich auch begegne, stoße ich auch auf solche Optionen wie ein mehrdimensionales Array. Und jetzt beginnt der lustige Teil...

 
Aliaksandr Hryshyn:
Verwenden Sie für solche Dinge Klassen. Übergeben Sie eine Instanz einer Klasse mit verschiedenen Arrays an die Funktion...

Versuchen Sie, eine Klasse so zu definieren, dass ein Funktionsaufruf, der sich auf ein Array unterschiedlicher Dimensionen bezieht, gleich aussieht.

 
Ilya Malev:

Normale Fragen, Sie hätten die Klammern im Titel des Threads ignorieren sollen. Ohne die Anzahl der Elemente zu kennen - Sie können. Wenn man die Dimensionalität nicht kennt, kann man das nicht.

Ich werde Ihnen ein schreckliches Geheimnis verraten. Ein Array ist eindimensional. Jede Art. Ich habe dir schon gesagt...

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

Ich werde Ihnen ein schreckliches Geheimnis verraten. Das Array ist eindimensional. Jede Art. Ich habe dir schon gesagt...


Ilya Malev:

Und was hat das mit Ihrer Aufgabe zu tun (Klasse von Aufgaben - einheitliche Arbeit mit Arrays verschiedener Dimensionen über Funktionen)?

 
Ilya Malev:

Versuchen Sie, eine Klasse so zu definieren, dass ein Funktionsaufruf an ein Array mit unterschiedlichen Dimensionen gleich aussieht.

Ich meine, Sie sollten das/die erforderliche(n) Array(s) in einer Klasse definieren und der Funktion eine Instanz dieser Klasse übergeben.
 

Ein interessantes Phänomen...

Wenn Sie eine Funktion für Ihre Sammlung schreiben, stellt sich die Frage, ob es besser ist, sie schnell (ohne Prüfung) arbeiten zu lassen.

void ArrayDelete(int & a[],int Start,int Count=1){
   ArrayCopy(a,a,Start,Start+Count);
   ArrayResize(a,ArraySize(a)-Count);
}

Oder mit narrensicherem Schutz, so dass sinnvolle Parameter überprüft und angepasst werden können? Hier sehen Sie, dass die schnelle Version einer Sammlung nicht würdig ist, weil sie einfach zu schreiben und nicht sehr nützlich ist. Und die Variante mit allen Prüfungen taugt nur als Museumsstück, weil man keine unnötigen Bremsen braucht. Und deshalb brauchen Sie es auch gar nicht.

 
Aliaksandr Hryshyn:
Ich meine, dass das/die erforderliche(n) Array(s) in einer Klasse definiert werden sollte(n) und eine Instanz dieser Klasse an eine Funktion übergeben werden sollte.

Wenn wir das Problem auf diese Weise betrachten, dann sollten mehrdimensionale Arrays überhaupt nicht deklariert werden - stattdessen sollten Arrays von Strukturen mit verschiedenen Feldern verwendet werden. Die Frage ist jedoch eine andere - was können wir mit einer bestehenden Anordnung beliebiger (im Voraus unbekannter) Dimensionen tun?