我寫代碼處理柵格數據在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,看起來正確編寫迭代器代碼是一件很有意義的事情。