函数指针的迭代器

iterator for function pointer

我是 C++ 的初学者,现在在使用函数指针的迭代器时遇到了问题。这是我到目前为止所得到的。

我正在使用 Visual Studio。

typedef int(*IntFunPointer)(int);
for (IntFunPointer::iterator it = f.begin(); it != f.end(); ++it) {
//some code
}

任何帮助将不胜感激。谢谢!

对不起,我应该更清楚。

这里是问题:

实现功能

void fill_with_values(int[] a, int size, IntFunPointer f)

将数组的第 i 个元素设置为 f(i)。这里 IntFunPointer 是一个类型定义 指向消耗 int 并产生 int 的函数的指针。

所以我想做的是遍历数组并相应地将每个元素设置为 f(i)。但是效果不是很好...

编辑:

现在我看到了真正的问题...

实施fill_with_values非常简单。

void fill_with_values(int a[] int size, IntFunPointer f)
{
   for ( int i = 0; i < size; ++i )
   {
      a[i] = f(i);
   }
}

你在这里做的不是遍历函数指针。您正在 for 循环中执行代码 size 次。您在 for 循环的每次迭代中调用函数 f 并在迭代中填充 a[i] 的内容。