0
這裏是我的代碼:私人雙變量,永遠不會被更新
我的結果不會改變,總是變爲0
我做兩個向量的點積。我不能使用STL算法,如std::inner_product
。所以我需要編寫一個迭代器。該operator=
應該做的積累
template <uint32_t DIM>
double Vector<DIM>::dot(const Vector& rhs) const
{
return std::transform(begin(),end(),rhs.begin(),accumulator(),multiply()).getresult();
}
class accumulator
{
public:
accumulator& operator++(){
return *this;
}
accumulator operator++(int){
return *this;
}
accumulator operator*(){
return *this;
};
void operator=(double a){
result=result+a;
}
double& getresult(){
return result;
}
private:
double result;
}