如何在C++中创建类似for循环的for循环?

SMe*_*ers 0 c++ function

我想在C++中做一些非常简单但我无法找到的东西.我想创建一个像for循环这样的函数,理想情况下我会在迭代发生的时候输入一个变量,并且我的函数将在括号内执行一些函数.我希望我很清楚.谢谢...

superFor (1)
{
  //commands to be executed here  
  add(1+2);
}
Run Code Online (Sandbox Code Playgroud)

use*_*282 9

#define superFor(n) for(int i = 0; i < (n); i++)
Run Code Online (Sandbox Code Playgroud)

编辑:注意不要在循环中使用另一个名为i的变量.


Kon*_*lph 6

你想要的东西在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);
Run Code Online (Sandbox Code Playgroud)

这将函数指针传递out给函数for_each.