Übergabe einer 2D Array

Du bist neu in der Welt von C++? Dann schau hier herein!
Antworten
Muckl
Beiträge: 23
Registriert: 12. April 2011 15:21

Übergabe einer 2D Array

Beitrag 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!
veeman
Beiträge: 277
Registriert: 3. Oktober 2012 01:43
Kontaktdaten:

Re: Übergabe einer 2D Array

Beitrag von veeman »

Entweder du dereferenzierst den Pointer:
(*container)[][]

Oder du rufst die Funktion value() zweimal auf:
container->value(i).value(j)
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: Übergabe einer 2D Array

Beitrag von Christian81 »

Oder übergist ne const Reference anstatt den blöden Pointer

Code: Alles auswählen

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

'Funktioniert nicht' ist keine Fehlerbeschreibung
Mr.Crank
Beiträge: 38
Registriert: 16. April 2013 15:21

Re: Übergabe einer 2D Array

Beitrag 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
Antworten