如何在C++中创建for循环像命令?
问题描述:
我想在C++中做一些非常简单的事情,但我找不到方法。 我想创建一个像for循环的函数,我将理想地输入一个变量来进行迭代应该发生的时间,并且我的函数将在括号内执行一些函数。我希望我很清楚。谢谢...如何在C++中创建for循环像命令?
例
superFor (1)
{
//commands to be executed here
add(1+2);
}
答
你想要什么是不可能在C++中,因为语言(的当前版本)没有在此处需要的一些功能:即“动态”创建功能块
的。最好你可以做的就是将一个函数指针或函数对象传递给你的函数,STL提供了很多这样的例子:考虑:
void out(int x) {
cout << x << ' ';
}
vector<int> xs;
xs.push_back(42);
xs.push_back(23);
for_each(xs.begin(), xs.end(), out);
这将函数out
的指针传递给函数for_each
。
答
void DoSomethingRepeatedly(int numTimesTo Loop)
{
for(int i=0; i<numTimesToLoop; i++)
{
//do whatever;
}
}
是什么呢?这不能太..简单..我一定是误解你的问题:( 当然,你必须检查,numTimesToLoop的值是> = 0.
编辑:我做了一个方法, 。万一
答
#define superFor(n) for(int i = 0; i < (n); i++)
编辑:小心不要在循环中使用另一个名为i的变量。
答
也许会BOOST_FOREACH做你想要什么:
http://engineering.meta-comm.com/resources/cs-win32_metacomm/doc/html/foreach.html
答
你可以使用宏。
#define superFor(v,i) for(int v=0; v<(i); v++)
,并使用它像这样:
superFor(i,10) {
printf("Doing something ten times");
}
答
在C++中,你可以使用常规的for-loop。
for(variable; condition; increment) {
//stuff goes here
}
在你的for循环中: 变量是一个像i这样的计数变量。你可以在这里定义变量并初始化它。你经常看到类似“int i = 0”的东西
条件是某种测试。在你的情况下,你想检查你的计数变量是否少于你想循环执行的次数。你会把“我< how_many_times_to_loop”
增量是增加计数变量的命令。在你的情况,你想“我++”,这是说的手短方式“I = I + 1”
所以这给了我们:
for(int i = 0; i < how_many_times_to_loop; i++) {
//stuff goes here
}
这是一个非常奇怪的要求,为什么不写一对循环?我会说一个宏,但我想明白你为什么想要这么做。 – 2008-10-17 14:46:01
闻起来像功课...你能告诉我们你到目前为止尝试过什么吗? – freespace 2008-10-17 14:47:36