Hi Petros, On Jun 18, 2012, at 7:54 PM, Petros wrote:
Hi, I would greatly appreciate your help with this, as I have spent considerable time and have run out of ideas: In the following piece of code, I want to recursively visit the elements of a 4-dimensional array. If all the dimensions are the same, there is no problem. However, if there is a dimension of different length the program crashes ! TIA, Petros
...
The program :
...
iterator3 begin3 = a.begin() + lowerBounds[3], end3 = a.begin() + upperBounds[3]; for ( iterator3 i3 = begin3; i3 != end3; ++i3 ){
iterator2 begin2 = i3->begin() + lowerBounds[2], end2 = i3->begin() + upperBounds[2]; for ( iterator2 i2 = begin2; i2 != end2; ++i2 ){ iterator1 begin1 = i2->begin() + lowerBounds[1], end1 = i2->begin() + upperBounds[1]; for ( iterator1 i1 = begin1; i1 != end1; ++i1 ){
iterator0 begin0 = i1->begin() + lowerBounds[0], end0 = i1->begin() + upperBounds[0]; for ( iterator0 i0 = begin0; i0 != end0; ++i0 ){
cout << *i0 << endl; } } } }
It looks like you are indexing lowerBounds and upperBounds in the wrong order (3,2,1,0 instead of 0,1,2,3). HTH, Ron