c++ - 使用存储在 vector 中的函数指针

标签 c++ pointers casting

我有一个包含函数指针的 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/

相关文章:

delphi - delphi获取成员函数指针

c#绑定(bind)到接口(interface)时向下转型

java - 子类/接口(interface)和父类(super class)之间的转换

c++ - 旋转矩阵不是真正对称的(OpenCV)

C++ 将数据从 std::string 复制到 std::wstring

c++ - C++ 中 typedef 和指针的规则是什么?

c# - 指定的转换无效,使用 SqlDataReader 将 INT 转换为 ENUM

c++ - 出站 SMTP 数据包捕获的最佳操作系统应用程序?

c++ - 图像 C++ 上有太多黑色区域的 OpenCV 校正

c - 关于 C 语言中指针的相同输出