函数指针的迭代器
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]
的内容。
我是 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]
的内容。