用函数指针映射

时间:2014-10-31 02:57:22

标签: c++ map function-pointers

我得到了一个从给定向量返回最小值的函数

    float minValue(vector<int> v){
      auto it = min_element(v.begin(), v.end());
      return *it;
    }

现在我有一张像

这样的地图
map<std::string, function*>
{
  {"min", /* here I need to use the above function call*/},
  //similarly for other requirements too
  {""}
 }

如何使用键指向函数指针映射值?

1 个答案:

答案 0 :(得分:1)

你是如何实际宣布function的?您的地图定义应该类似于

map<std::string, float (*)(vector<int> v)> fnMap {
    {"min", &minValue } ,
    {"", NULL } 
};

至于你的评论

typedef float(*function)(vector<int>);

map<std::string, function> fnMap {
    {"min", &minValue } ,
    {"", NULL } 
};

function*将导致指向函数指针的指针。