我试图找到集合中元素的总和,我想知道找到它的好方法是什么。我构建了两个类,一个称为 Customer,一个称为 Item,我想编写一个函数来计算客户需要为其在 std::set 类型中列出的产品支付的总付款项。这是我的集合的声明:
set<Item> _items;
班级项目:
private:
string _name;
string _serialNumber; //consists of 5 numbers
int _count=0; //default is 1, can never be less than 1!
double _unitPrice; //always bigger than 0!
类 Item 中的函数来总结一个项目的价格:
double Item :: totalPrice() const
{
return _count*_unitPrice;
}
这是我正在尝试编写的函数,它将总结我的所有元素:
#include <numeric>
#include "Customer.h"
double Customer::totalSum() const
{
double sum = std::accumulate(_items.begin(), _items.end(), 0.0);
return sum;
}
但我得到这个错误:error C2893: Failed to specialize function template 'unknown-type std::plus<void>::operator ()(_Ty1 &&,_Ty2 &&) const'
重要说明:Customer 类已经包含 Item 的标题。
编辑:添加了关于类项目的信息。