我有一个包含函数指针的 vector :
vector<double (*)(vector<double>)> dY = {d2x,d2y,dx,dy}
在另一个函数中,我有一个 for 循环迭代这个 vector 。
for( vector<double>::const_iterator it = dY.begin(); it != dY.end(); ++it){
vector<double> Y = {0,10,0,10};
...
}
现在我想计算 d2x(Y)、d2y(Y)、dx(Y) 和 dy(Y),但我无法正确转换迭代器,因此无法提供参数。
我该怎么做?
非常感谢
最佳答案
你真的迭代了正确的 vector 吗?循环中 it
的类型不适合 dY
vector 。
for( vector<double (*)(vector<double>)>::const_iterator it = dY.begin(); it != dY.end(); ++it)
// ^^^^^^^^^^^^^^^^^^^^^^^^^ -- You need the correct type here
一旦你有一个正确的迭代器,这应该可以工作:
double result = (*it)(Y);
关于c++ - 使用存储在 vector 中的函数指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14342157/