gpt4 book ai didi

c++ - 错误 : no match for ‘operator*’ (operand types are ‘std::vector>’ and ‘std::complex’ )

转载 作者:行者123 更新时间:2023-11-30 02:23:36 25 4
gpt4 key购买 nike

我使用带有复数的 vector 类,我必须将一个复数 vector 与一个复数相乘,如下所示:

vector< complex<double> > vec;
complex<double> z;
// some initialization of vec and z ...
vector< complex<double> > res;
res = vec*z; // here is the error

error: no match for ‘operator*’ (operand types are ‘std::vector<std::complex<double> >’ and ‘std::complex<double>’)

是否可以使用这些参数重载 operator*?

最佳答案

是的,这是可能的。以下是如何实现自己的运算符 *对于 complex<T> :

template <typename T>
vector<complex<T>> operator *(const vector<complex<T>>& v, const complex<T> z) {
vector<complex<T>> res;
transform(v.begin(), v.end(), back_inserter(res),
[&](complex<T> x) -> complex<T> {
return x * z;
});
return res;
}

关于c++ - 错误 : no match for ‘operator*’ (operand types are ‘std::vector<std::complex<double>>’ and ‘std::complex<double>’ ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46037763/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com