Bài viết phổ biến của tác giả
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
处理二维数组时,例如您需要经常访问元素的矩阵。执行此操作的直接方法是通过两个嵌套循环:
for( int i=0; i < n; ++i ) {
for( int j=0; j < m; ++j ) {
// do something with data[i][j]
}
}
此代码原则通常会在整个代码中被一遍又一遍地复制。你如何解决这个问题以成为 DRY?我认为解决这个问题的唯一方法是使用带有函数指针的访问者函数,对吧?
编辑:为了更有建设性,假设您有矩阵类型 typedef double** Matrix;
。
对于 C++,可以这样解决:Loop over matrix elements applying variable function
câu trả lời hay nhất
第一份工作:考虑将 dữ liệu
重铸为表示矩阵的 cấu trúc
,或者,如果失败,则为简单的 định nghĩa kiểu
。我假设你做的是前者。
“//do something with data[i][j]
”可以是一个chức năng(一个đồ ăn
说),它需要Tôi
、j
和指向矩阵 cấu trúc
的指针作为参数。
那么您只需要一个执行循环的函数:该函数将 chức năng 指针指向适当的 đồ ăn
,以及矩阵 cấu trúc
con trỏ.
然后您的工作就是根据您的要求实现各种 đồ ăn
。
không muốn为此使用宏:它们会使调试变得困难,尤其是当它们引入硬编码的变量名时,如 Tôi
Và j
.
关于c - 如何在 C 中实现 DRY 原则以遍历矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36787010/
Tôi là một lập trình viên xuất sắc, rất giỏi!