如何在C++中正确使用配对

How to use pair correctly in C++

本文关键字:C++      更新时间:2023-10-16

我正在尝试将对象插入到地图中。您可以忽略此处的大部分代码,但我会包含它以提供帮助。它是 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));
相关文章:
  • 没有找到相关文章