将一整组变量作为一个参数传递给函数 C++
Passing an entire group of variables as one argument to a function C++
我正在尝试模拟一个需要多个变量和参数并且需要多个嵌套函数的系统。我想知道是否有一种方法可以将它们作为一个组传递,这样我就可以只传递一个或两个参数,而不必逐项列出每个函数中的每个参数和变量,并试图跟踪它们在 [=14 中的位置=].使用 R,可以使用 with()
来评估使用命名参数列表的函数(参见 )。你能用 C++ 中的地图做到这一点吗?
用参数写一个struct
。
多个嵌套函数要么需要采用此类 struct
的覆盖,要么重写以将其作为参数使用。
现在您可以在包中传递参数。
如果参数设置不统一,你可能会倒霉。您也可以使用继承等方法来解决它。这将在很大程度上取决于细节。
如果有一组重要的统一参数,将它们设为 struct
可以减少传递的参数数量。
void do_math(int x, int y, int z, int w);
对
struct coords {
int x,y,z,w;
};
void do_math(coords);
如果我们想保留原来的 do_math
我们可以:
inline void do_math(coords c) { do_math(c.x, c.y, c.z, c.w); }
现在我们可以通过调整获得多次调用 do_math
的代码;
void do_math_over_and_over(coords c, int x_range) {
for(int i = 0; i < x_range; ++i) {
coords tmp = c;
tmp.x += i;
do_math(tmp)
}
}
我正在尝试模拟一个需要多个变量和参数并且需要多个嵌套函数的系统。我想知道是否有一种方法可以将它们作为一个组传递,这样我就可以只传递一个或两个参数,而不必逐项列出每个函数中的每个参数和变量,并试图跟踪它们在 [=14 中的位置=].使用 R,可以使用 with()
来评估使用命名参数列表的函数(参见
用参数写一个struct
。
多个嵌套函数要么需要采用此类 struct
的覆盖,要么重写以将其作为参数使用。
现在您可以在包中传递参数。
如果参数设置不统一,你可能会倒霉。您也可以使用继承等方法来解决它。这将在很大程度上取决于细节。
如果有一组重要的统一参数,将它们设为 struct
可以减少传递的参数数量。
void do_math(int x, int y, int z, int w);
对
struct coords {
int x,y,z,w;
};
void do_math(coords);
如果我们想保留原来的 do_math
我们可以:
inline void do_math(coords c) { do_math(c.x, c.y, c.z, c.w); }
现在我们可以通过调整获得多次调用 do_math
的代码;
void do_math_over_and_over(coords c, int x_range) {
for(int i = 0; i < x_range; ++i) {
coords tmp = c;
tmp.x += i;
do_math(tmp)
}
}