我有一张类似
的地图 typedef float(*function)(vector<int>);
map < string, function> mymap{
{ "maximum", &maxValue },
{ "minimum", &minValue },
{... , ...},
};
并将我在地图中使用的函数定义为
float maxValue(vector<int> v){
auto cit = max_element(v.begin(), v.end());
return *cit;
}
以及我在上面的地图定义中使用的其他函数的类似函数定义。
我在.h文件中有一个带有两个私有数据变量的类作为“字符串值;”和“浮动聚合”
现在,我的问题是我想为这个类定义一个构造函数,并初始化对象的成员数据in.cpp文件,其值为
// aggregates is my class name
aggregates::aggregates(string val, const vector<int>& v): value(val), aggregate(.....)//here is my problem how can I initialize aggregate from the map that I mentioned above.
提前致谢
答案 0 :(得分:0)
class aggregates
{
private:
float aggregate;
string value;
public:
aggregates(const string & val, const vector<int> & v, const map <string, function> & mymap) : value(val)
{
aggregate = mymap.at(value)(v); // instead of mymap[value](v), due to const&
}
};