gpt4 book ai didi

c++ - 使用映射第二个参数的类构造函数初始化

转载 作者:太空宇宙 更新时间:2023-11-04 13:43:58 25 4
gpt4 key购买 nike

我有一张像这样的 map

  typedef float(*function)(vector<int>);
map < string, function> mymap{
{ "maximum", &maxValue },
{ "minimum", &minValue },
{... , ...},
};

并获得了我在 map 中使用的函数的定义

   float maxValue(vector<int> v){
auto cit = max_element(v.begin(), v.end());
return *cit;
}

以及我在上述 map 定义中使用的其他函数的类似函数定义。

我在 .h 文件中得到了一个包含两个私有(private)数据变量的类作为“字符串值”;和“ float 聚合”

现在,我的问题是我想为这个类定义一个构造函数,并在.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.

提前致谢

最佳答案

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&
}
};

关于c++ - 使用映射第二个参数的类构造函数初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26676298/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com