Array verschieben möglich ?
-
Hallo
hab wieder mal ne Frage.
Ich möchte eine grosse Matrix 127x127 erstellen.
Dabei soll die zweite Zeile genauso aussehen wie die erste bis auf das alles um eins nach links verschoben ist und das 1. Element der ersten Zeile hinten an das zweite angehangen wird.z.b:
[0][i] a,b,c,d,1,2,3,4,Z,Y [1][i] b,c,d,1,2,3,4,Z,Y,a [2][i] c,d,1,2,3,4,Z,Y,a,b ...
Weiss jemand wie man das am einfachsten machen könnte ?
Wollte die Arrays nämlich nicht "manuell" auffüllen.
Oder wäre manuelles füllen ratsam um Zeit zu sparen ?
-
const char data[]="abcdefghi"; const std::size_t matrix_height=10; const std::size_t matrix_width=10; char matrix[matrix_height][matrix_width]; for(size_t i=0;i<matrix_height;++i) { std::memcpy(matrix[i],data+i,matrix_width-i); std::memcpy(matrix[i]+matrix_width-1,data,i); }
HTH
@devil
ups, ein Tippfehler. Hab ich mal gefixt
-
kingruedi schrieb:
const char data[]="abcdefghi"; const std::size_t matrix_height=10; const std::size_t matrix_width=10; char matrix[matrix_height][matrix_width]; for(size_t i=0;i<matrix_height;++i) { std::memcpy(matrix_height[i],data+i,matrix_width-i); /* müsste das nicht matrix[i] heissen ? */ std::memcpy(matrix_height[i]+matrix_width-1,data,i); }
HTH
-
Vielen Dank euch beiden.
Werds ausprobieren.