0
看来我在这里做了一些非常错误的事情。你可以帮我吗?目的是将inner_product用于复数载体。inner_product and 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,0。) –
@pawel_winzig我必须说,我不确定!隐式转换*应该有效。我会尽力重现你的错误。 – juanchopanza
@JamesCuster我明白了。 – juanchopanza