gpt4 book ai didi

c++ - C++中如何正确使用pair

转载 作者:行者123 更新时间:2023-11-27 23:09:31 25 4
gpt4 key购买 nike

我正在尝试将一个对象插入到 map 中。您可以忽略此处的大部分代码,但我会将其包括在内以提供帮助。这是行 mymap.insert(pair(name, myobj(num1, num2)));那是给我的错误。

struct ap_pair {
ap_pair(float tp, float tm) : total_price(tp), total_amount(tm) {};
ap_pair & operator+=(const ap_pair &);
float total_price;
float total_amount;
};


void APC :: compute_total ()
{

string name;
map<string, ap_pair> :: iterator my_it;
float num1, num2, num3;

while (!fs.eof() )
{
fs >> name >> num1 >> num2; //read in file

ap_pair myobj(num1, num2); //send the weight/count and per unit price ap_pair

my_it = mymap.find(name); //returns iterator




if (fs.eof()) break; //makes it so the last line is not repeated

mymap.insert(pair<string,ap_pair>(name, myobj(num1, num2))); //ERROR IS HERE

num3= num1*num2;
total_amount+=num1;
total_price+= num3;

}




}

我在编译时遇到错误,说“错误:对'(ap_pair) (float&, float&) 的调用不匹配”。这是为什么?做我做的有什么错?我已经为此工作了一个多小时,但看不到任何解决方案。有任何想法吗?如果需要,我可以提供更多关于我正在尝试做的事情的想法。不过,我认为这可能是一个简单的语法问题。

最佳答案

myobj(num1, num2)

这会尝试像仿函数一样调用您的 myobj 对象。相反,您只想传递 myobj:

mymap.insert(pair<string,ap_pair>(name, myobj));

关于c++ - C++中如何正确使用pair,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21191698/

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