正在初始化std::complex

Initializing std::complex

本文关键字:complex std 初始化      更新时间:2023-10-16

我在网上看到了几个例子,这些例子表明std::复杂变量可以通过以下方式初始化:

std::complex<float> val(10, -2);

但是,有没有这样的方法:

std::complex<float> val;
val.real = 10;
val.imag = -2;

std::complex::realstd::complex::imag是实际函数。它们可以用于返回实部/虚部以及设置它们,但仍然通过提供值作为参数来使用函数调用语法:

std::complex<float> val;
val.real(10);
val.imag(-2);

但是,这并不称为初始化。这将更改val的值,该值已在代码的第一行中初始化为零。

实际上,您可以看到相同的结果(在该代码之后,val具有您期望的值),但需要更多的指令,除非编译器可以对此进行优化。由于std::complex是一种标准类型,编译器很可能会这样做,但你永远无法确定这一点。