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