函数指针的迭代器

时间:2018-01-24 04:11:51

标签: c++ visual-studio iterator function-pointers

我是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是一个typedef 指向消耗int并产生int的函数的指针。

所以我试图做的是迭代数组并相应地将每个元素设置为f(i)。但它并没有很好地运作......

编辑:

1 个答案:

答案 0 :(得分:0)

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

实施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次执行代码。您在f循环的每次迭代中调用函数for并在迭代中填充a[i]的内容。