gpt4 book ai didi

c - 如何在 C 中实现 DRY 原则以遍历矩阵

转载 作者:太空狗 更新时间:2023-10-29 17:12:46 26 4
gpt4 key购买 nike

处理二维数组时,例如您需要经常访问元素的矩阵。执行此操作的直接方法是通过两个嵌套循环:

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

最佳答案

第一份工作:考虑将 data 重铸为表示矩阵的 struct,或者,如果失败,则为简单的 typedef。我假设你做的是前者。

//do something with data[i][j]”可以是一个函数(一个foo说),它需要ij 和指向矩阵 struct 的指针作为参数。

那么您只需要一个执行循环的函数:该函数将 function 指针指向适当的 foo,以及矩阵 struct指针。

然后您的工作就是根据您的要求实现各种 foo

不要为此使用宏:它们会使调试变得困难,尤其是当它们引入硬编码的变量名时,如 ij .

关于c - 如何在 C 中实现 DRY 原则以遍历矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36787010/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com