セット内の要素の合計を見つけようとしていますが、それを見つける良い方法は何だろうと思っていました。Customer という名前のクラスと Item という名前の 2 つのクラスを作成しました。タイプ 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 のヘッダーが含まれています。
編集: クラス アイテムに関する情報を追加しました。