我有两个 double 类型的向量,我想将它们组合成一个复杂的向量。
vector<double> vReal;
vector<double> vImag;
我如何结合以上两个得到
vector<complex<double>> vComp;
有人可以帮我怎么做吗?
非常感谢。
此致
钦坦
我有两个 double 类型的向量,我想将它们组合成一个复杂的向量。
vector<double> vReal;
vector<double> vImag;
我如何结合以上两个得到
vector<complex<double>> vComp;
有人可以帮我怎么做吗?
非常感谢。
此致
钦坦
vComp.reserve(vReal.size());
std::transform(
begin(vReal), end(vReal), begin(vImag),
std::back_inserter(vComp),
[](double r, double i) { return std::complex<double>(r, i); });
使用std::transform,提供合适的BinaryOperation
.
for(int i = 0; i < vReal.size(); ++i) {
complex<double> iNum(vReal[i], vImag[i]);
vComp.push_back(iNum);
}
还是我错过了什么?
也许还要检查以确保 vReal 和 vImag 大小相同,否则您会崩溃。
如果不支持 C++11
std::complex<double> make_complex(double re, double im) {
return std::complex<double>(re,im);
}
std::transform(vReal.begin(), vReal.end(), vImag.begin(), std::back_inserter(vComp), make_complex);