C ++中类型函数指针的向量

时间:2013-06-28 00:35:54

标签: c++

我过去曾经做过很多次,但由于某些原因,我现在无法安静地记住它的语法。假设您有以下内容:

typedef float (*FuncPtr)(float x, float y);

并且你想创建一个类型函数指针的向量来获取函数指针(如上面那个)..

  1. 你会如何宣布这个载体。
  2. 你如何push_back()一个函数来进行向量化。
  3. 我过去曾经做过很多次。我只想记住语法。

2 个答案:

答案 0 :(得分:2)

不确定您面临的问题是什么,但这是一个将函数添加到函数类型向量的编译示例。 http://ideone.com/fC6lrw

#include <iostream>
#include <vector>
#include <cmath>
using namespace std;

typedef float (*MathFunction)(float);

float zero(float){return 0;}

int main(){
    std::vector<MathFunction> functions;

    functions.push_back(std::cos);
    functions.push_back(zero);
    return 0;
}

答案 1 :(得分:1)

如果你有C ++ 11,你可以改用

std::vector<std::function<float(float, float)>>;

然后你将能够接收带有捕获的lambdas以及没有lambdas和函数的指针。