Mehrdimensionale Arrays durchgehen
Übersicht
BlitzMax, BlitzMax NG
Beginners-Corner
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
BlitzMax, BlitzMax NG
Beginners-Corner
Powered by phpBB © 2001 - 2006, phpBB Group
