有点天真的问题,但仍然如此。我试图打破一个正在读取2d矩阵的for循环。我想写一个回调函数来消耗每行/每次迭代的行/逐列。关于如何将回调函数与迭代联系起来的任何提示?
bool ReadMatrix(const int** array) {
.....
int columns;// array col
int rows; //array rows
for(int col=0; col<columns; ++col) {
for(int row=0; row<rows; ++row) {
ReadValue(row, col); //arbitrary function... which i would like to tie up with iterations
}
}
....
}
答案 0 :(得分:0)
我的第一个考虑是你的回调采用数组,行索引,行跨度,列索引和列跨度。
class functor
{
public:
void operator()(int data[][],
size_t row_idx,
size_t row_span,
size_t col_idx,
size_t col_span);
};
我将迭代器函数作为模板编写,因此它可以轻松地获取仿函数,自由函数或类静态函数:
template <class CB_T>
void iterate(int data[][],
size_t rows,
size_t columns,
CB_T cb);
答案 1 :(得分:0)
for(var y in m){
rowCallback(m[y]);
for(var x in m[y]){
elemCallback(m[y][x]);
}
}
???