Mehrdimensionale Arrays durchgehen
Übersicht

TritiumBetreff: Mehrdimensionale Arrays durchgehen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Nabend,
wie gehe ich bei einem mehrdimensionalen Array alle Objekte per EachIn durch? Eindimensional wäre das ja BlitzMax: [AUSKLAPPEN] Local array:String[] = ["ganz","ein","tolles","array"] Wenn ich jetzt bspw. ein Array "array[5][4]" erstelle, und alle Einträge von "array[0][3]" bis "array[4][3]" durchgehen möchte, wie mache ich das per EachIn? Oder muss ich ne for-Schleife mit Zähler benutzen? |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Um genau zu sein, ist "array[5, 4]" ein mehrdimensionales Array und "array[5][4]" ein Array of Arrays. Entsprechend gibt es für letzteres zwei Möglichkeiten:
BlitzMax: [AUSKLAPPEN] Local array:String[][] = [["Eins", "Zwei"], ..Was auch immer dir lieber ist. Glaube nicht, dass es einen Unterschied macht. |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
Tritium |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ah, das hilft mir weiter, danke! ![]() Wo genau ist denn der Unterschied zwischen mehrdimensionalen Arrays und Arrays of Arrays? Wenn ich das richtig verstanden hab, dann hat man bei einem mehrdimensionalem Array, z.B. "array[10,10]" ein Array mit 10x10 Einträgen, die alle vom gleichen Type sein müssen, oder? Und bei einem Array of Arrays wäre es dann so, dass ich z.B. "array[x][y]" hab, also ein Array, dass x andere Arrays mit jeweils y Einträgen besitzt, richtig? Wie ist das dann mit dem Type der Daten, hat das Array mit x Einträgen soz. den 'Type Array' und die Arrays mit y Einträgen jeweils den gleichen Type, z.B. String? |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ein array[x, y] besitzt x*y Einträge. Ein array[x][y] besitzt... unbekannt viele Einträge - jedenfalls kann man das nicht so einfach ablesen, da ein Array praktisch beliebig viele Einträge haben kann.
Mit Slices (siehe Doku oder Forensuche) lassen sich eindimensionale Arrays ganz toll kopieren/zerteilen, dass wäre ein guter Grund, Arrays of Arrays zu benutzen. Ein Array of Arrays enthält <Type>Arrays die <Type>-Daten enthalten - Datentypen mischen kann man nicht. |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
Tritium |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Xeres hat Folgendes geschrieben: Ein array[x][y] besitzt... unbekannt viele Einträge - jedenfalls kann man das nicht so einfach ablesen, da ein Array praktisch beliebig viele Einträge haben kann.
Aber was gibt dann das y an? |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Vergleiche beide Arrays:
BlitzMax: [AUSKLAPPEN] Local array:Int[][] = [[1], [2], [3]]Du kannst dafür sorgen, das die Subarrays immer gleich lang sind - muss aber nicht sein. Das Array hat array.Length Subarrays - beides mal 3 Stück. Wie viele Einträge array[i] hat, musst du aber nochmal nachschlagen mit array[i].Length. Jedes Array kann unterschiedlich lang sein. Bei einem [x, y] Block sind Zeilen und Spalten in jedem Fall vorhanden, wenn auch mit 0 oder NULL gefüllt (und nichts darüber hinaus). |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
Tritium |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Jetzt hab ich das auch verstanden, danke für die Geduld! ![]() [Edit]: War wohl nix, noch wollen die Arrays nicht so wie ich will. Warum macht im folgenden Code die Zuweisung in der Schleife nichts? BlitzMax: [AUSKLAPPEN] Framework BRL.Blitz |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group