我有一个c ++代码,我应该通过更改我拥有的两个参数(alpha和cost)的值来分别运行它的许多版本。
他们的版本如下:
for (int cost = 0; cost <= 100; cost+=5){
for(float alpha = 0.5; alpha<=2.5; alpha+=0.1){
我不知道如何实现这一点,我为此搜索了很多,但更多的内容太复杂或不适合我。在此先感谢您的帮助。
我的代码结构很简单。我有两个函数,而不是main函数。我在Windows 7中使用Visual Studio 2012。
P.S。计算不是由我,我将我的程序的exe文件传递给集群计算机。总的来说,应该有400套不同的版本,我需要重复5次。
这是我最终找到并为我工作的内容:
int main(int argc, char const *argv[]){
for (int cost = 0; cost <= 100; cost+=5){
for(float alpha = 0.5; alpha<=2.5; alpha+=0.1){
string s1 = to_string(cost);
char const *pchar1 = s1.c_str();
argv[1] = pchar1;
string s2 = to_string(alpha);
char const *pchar2 = s2.c_str();
argv[2] = pchar2;
. . .
答案 0 :(得分:1)
我不确定我到底想要什么,但以下内容可能有所帮助:
您必须多次致电my_f(int argc, const char*argv[])
:
int main(int argc, char *argv[]){
for (int cost = 0; cost <= 100; cost += 5) {
for (float alpha = 0.5f; alpha <= 2.5f; alpha += 0.1f) {
const int myargc = 2;
const std::string scost = std::to_string(cost);
const std::string salpha = std::to_string(alpha);
const char* myargv[] = { scost.c_str(), salpha.c_str() };
my_f(myargc, myargv);
}
}
return 0;
}
您必须启动my_a.exe cost alpha
我建议使用shell脚本多次使用不同的参数启动应用程序。
在C ++中,您必须使用fork
/ exec
...