2017-12-29 28 views
0

Für diese Zuordnung soll ich einen Bereich verwenden, um die Elemente in ia auszudrucken, ohne das Schlüsselwort auto zu verwenden. Im Grunde versucht die Aufgabe uns zu helfen multidimensionale Arrays zu verstehen. Ich habe eine Vorstellung davon, was im Code vor sich geht, aber ich laufe immer wieder auf Fehler ein. Es stimmt etwas mit der Syntax nicht und ich kann es nicht herausfinden.Verwenden eines Bereichs für die Schleife ohne Verwendung des Auto-Schlüsselwortes C++

int ia[3][4] = {{0,1,2,3},{4,5,6,7},{8,9,10,11}}; 

cout << endl; 
for(int &a : ia) 
    for(int b : a) 
     cout << b << endl; 

Ich erhalte diese Fehler:

.. \ src \ Sec_3_5_3.cpp: 127: 15: Fehler: ungültige Konvertierung von 'int *' auf 'int' [-fpermissive] für (int & a: ia)

.. \ src \ Sec_3_5_3.cpp: 127: 15: Fehler: kann nicht binden rvalue '(int) ((int *) __ for_begin)' auf 'int &'

. . \ src \ Sec_3_5_3.cpp: 128: 15: Fehler: 'begin' wurde in diesem Bereich nicht angegeben

.. \ src \ Sec_3_5_3.cpp: 128: 15: Fehler: 'Ende' nicht in diesem Umfang erklärt

Antwort

2

Jeder ia[i] ist kein int, sondern eine Reihe von 4 int s.
Und in der Lage sein, die Größe zu halten, müssen Sie einen Verweis verwenden:

for(int (&a)[4] : ia) 
    for(int b : a) 
Verwandte Themen