Array kopieren: spezial
-
Hi,
ich hab ein problem mit meinem int-array. es sieht folgendermassen aus: (ist 1D)
1,4,3,5,2,7,4,6,3,6,3,6,8,4,2,2,6,8,5,3,2,7, usw...
jetzt möchte ich immer vierer packs, das ist natürlich kein problem, doch da gibt es ein kleines problem: ich möchte nicht so kopieren:
1,4,3,5
2,7,4,6
3,6,3,6sondern:
1,4,3,5
5,2,7,4
4,6,3,6
6,3,6,8also immer den letzten mitnehmen. Wie mach ich das am besten? vorallem wenn das Array so ausgegeben werden soll:
1,4,3,5,2,7,4,6,3,6,3,6,8,4,2,2,6,8,5,3,2,7,1,4,3,5 5,2,7,4, 4,6,3,6 6,3,6,8, 8,4,2,2, 2,6,8,5 5,3,2,7 ...
-
vier Schritte nachvorne, einen zurück...
Devil
-
müsste so funktionieren, wird aber nichts kopiert ... int main(int argc, char* argv[]) { int zahlen[]={1,4,3,5,2,7,4,6,3,6,3,6,8,4,2,2,6,8,5,3,2,7}; int le=sizeof(zahlen)/sizeof(int); int i=0,j; while (i<le) { for(j=0;j<4&&i+j<le;j++) cout << zahlen[i+j] << ","; cout << endl; i+=3; } return 0; }
-
Sorry, auf die spezielle Ausgabeform angepasst.
int main(int argc, char* argv[]) { int zahlen[]={1,4,3,5,2,7,4,6,3,6,3,6,8,4,2,2,6,8,5,3,2,7}; int le=sizeof(zahlen)/sizeof(int); int i=0,j; while (i<le) { for(j=0;j<4&&i+j<le;j++) cout << zahlen[i+j] << ","; i+=3; if(i/3%3) cout << " "; else cout << endl; } return 0; }
-
int array[]= {...}; vector<vector<int> > ergebnis; for (int i=0; i<sizeof(array)/sizeof(*array); i+=3) { vector<int> tmp; copy (array+i, array+i+4, back_inserter(tmp)); ergebnis.push_back(tmp); }