【问题标题】:Complex constant i in C++?C ++中的复杂常量i?
【发布时间】:2021-07-30 09:37:08
【问题描述】:

在编写 C++ 代码时,而不是:

double a, b;
...
std::complex<double> z = a + b * std::complex<double>(0, 1);

我更喜欢这样写:

std::complex<double> z = a + b * i;

我可以看到C99有宏Ihttps://en.cppreference.com/w/c/numeric/complex/I),但是不能和std::complex一起使用:

std::complex<double> z = a + b * I; // does not compile

当然,我可以为此目的定义一个常量,但该常量必须已经存在于 C++ 中的某个地方。它叫什么?

【问题讨论】:

  • @KamilCuk 你不能那样做。 C++ 不支持 C 的 _Complex 类型,而是使用 std::complex

标签: c++ c++14 std complex-numbers


【解决方案1】:

自定义文字i(例如1i),参见https://en.cppreference.com/w/cpp/numeric/complex中的示例

#include <complex>
using namespace std::complex_literals;
std::complex<double> z1 = 1i * 1i;

【讨论】:

    【解决方案2】:

    从 C++14 开始,您可以使用 complex literal ""i 指定(仅)复数的虚部。因此,对于 i,您可以使用 1i

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-01
      • 1970-01-01
      • 2013-10-07
      • 2021-06-09
      • 2017-02-15
      • 2011-10-25
      相关资源
      最近更新 更多