나는 gridded 데이터를 다루는 코드를 3d로 작성하고있다 (boost :: multi_array와 vtkImageData). 나는 중첩 된 루프를 가지고 있음을 발견했다.3d 배열 인덱스 반복자
for(int i=0; i<shape[0]; i++){
for(int j=0; j<shape[1]; j++){
for(int k=0; k<shape[2]; k++){
/* ... */
}
}
}
나는 미학적으로 더 자주 내 코드에있다. 세 가지 인덱스를 고정 크기 배열 (예 : boost::array
)로 유지하는 반복자를 사용하여 이것을 작성하는 올바른 방법은 무엇입니까?
for(boost::array<int,3> ijk: GridIndicesIterator(shape)){ ... }
부스트 :: multi_array 요소를 통해 반복 할 수 있지만, 3D 인덱스가 명시 적으로 백 계산해야합니다
목표는 유사 뭔가를 작성하는 것입니다. 나는 또한 boost : iterator를 살펴 봤고 iterator 코드를 올바르게 작성하는 것이 꽤 중요한 일인 것으로 보인다.