我写代码处理栅格数据在3D(升压:: multi_array中和vtkImageData)。我发现我有嵌套循环迭代器在三维数组索引
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)){ ... }
的boost :: multi_array中允许通过元素迭代,但3D指数必须明确回算。我也看过boost :: iterator,看起来正确编写迭代器代码是一件很有意义的事情。