Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/144.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 带有函数指针的映射_C++_Map_Function Pointers - Fatal编程技术网

C++ 带有函数指针的映射

C++ 带有函数指针的映射,c++,map,function-pointers,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*/}, //s

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

    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
  {""}
 }
如何使用键指向函数指针映射值?

您实际上是如何声明函数的?您的地图定义应该如下所示

map<std::string, float (*)(vector<int> v)> fnMap {
    {"min", &minValue } ,
    {"", NULL } 
};
至于你的评论

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

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

函数*将产生指向函数指针的指针。

很抱歉,我忘了提到这一点。我使用了像typedef float*functionvector这样的typedef@user3979554我在回答中采用了这一点。但当我这样做时,它抛出了一个错误c2440:无法从初始值设定项列表转换为映射,我如何解决这个问题?打开-std=c++11