0
私はここで何かひどく間違っているようです。手伝って頂けますか?目的は、複雑なベクトルにinner_productを使用することです。inner_productとcomplex vectors
#include<iostream>
#include<vector>
#include <numeric>
#include <complex>
using namespace std;
template<class T>
complex<T> complex_prod(complex<T> a, complex<T> b)
{
return conj<T>(a)*b;
}
template<class T>
complex<T> add_c(complex<T> a, complex<T> b)
{
return a+b;
}
int main()
{
complex<double> c1(1.,3.);
complex<double> c2(2.,4.);
vector<complex<double> > C1(3,c1);
vector<complex<double> > C2(3,c2);
cout<<inner_product(C1.begin(),C2.end(),C2.begin(),0.,add_c<double>,complex_prod<double>) <<endl;
return 0;
}
なぜ変換に問題があるのかわかりません。すべてが定義されているようですが、繰り返しは問題にならないはずです。
ありがとうございました! なぜ変換されないのですか?追加:複合(0、0) –
@pawel_winzig私は言う必要があります、わかりません!暗黙的な変換*はうまくいくはずです。私はあなたのエラーを再現しようとします。 – juanchopanza
@JamesCuster私はそれを理解しました。 – juanchopanza