-3

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

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

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

  1. 您将如何声明向量。
  2. 你将如何push_back()向量化函数。

我过去做过很多次。我只想记住语法。

4

2 回答 2

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;
}
于 2013-06-28T01:02:37.757 回答
1

如果你有 C++11,你可以用这个代替

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

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

于 2013-06-28T02:16:04.510 回答