Seite 1 von 1

Übergabe einer 2D Array

Verfasst: 24. September 2013 18:26
von Muckl
Hi,

ich bin eigentlich davon ausgegangen, dass diese Frage schon einmal diskutiert wurde, jedoch habe ich nichts gefunden. Es geht um die Übergabe eines 2d Arrays als Reference und das Auslesen enthaltener Inhalte.

Ich habe eine Methode welcher eine Referenz auf einen 2D Array übergeben wird. Mein Array ist z.B.

Code: Alles auswählen

QVector<QVector<double> > matrix1
Eine mögliche Methode wäre dann

Code: Alles auswählen

 void doSomething(QVector<QVector<double> > *container) {}  
wenn ich nun innerhalb der Methode die Daten aus "matrix1" auslesen möchte, funktioniert dies nicht mehr mit container[][] (klar, ist ein Pointer). Hätte ich nur einen 1D Array könnte ich die Inhalte mit container->value() auslesen. Aber wie geht das mit einem 2D Array z.B. QVector<QVector<double> >

Danke für die Hilfe!

Re: Übergabe einer 2D Array

Verfasst: 24. September 2013 18:58
von veeman
Entweder du dereferenzierst den Pointer:
(*container)[][]

Oder du rufst die Funktion value() zweimal auf:
container->value(i).value(j)

Re: Übergabe einer 2D Array

Verfasst: 24. September 2013 20:58
von Christian81
Oder übergist ne const Reference anstatt den blöden Pointer

Code: Alles auswählen

void doSomething(const QVector<QVector<double> > &container) {}  

Re: Übergabe einer 2D Array

Verfasst: 26. September 2013 13:22
von Mr.Crank
Tach Muckl,

warum das Leben so schwer machen ? ;) also wenn du einfach ein Vector (kein Array) hast , dann durchwandere
dein Vector einfach mit einem Iterator und 2 for Schleifen ;) Die Daten kannst du dann mit dem Zeiger
vom Iterator ausgeben.

Gruß MrCrank