我是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)。但它并没有很好地运作......
编辑:
答案 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]
的内容。