复数的实部和虚部
real and imaginary part of a complex number
我有 2 个指针指向两个 20 个成员数组。我的数组包含复数。我想为这个复数逐个元素划分,这就是为什么我需要将数字分为实部和虚部。我尝试了以下代码,但它给出了错误。
#include <complex>
complex *a;
complex *b;
complex array1[20];
complex array2[20];
a = &array1;
b = &array2;
int i=0;
for (i=0;i<=19;i++)
{
real_part_array1[i] = real(*a[i]);
imag_part_array1[i] = imag(*a[i]);
real_part_array2[i] = real(*b[i]);
imag_part_array2[i] = imag(*b[i]);
}
我得到的第一个错误是;我试着把它写成
#include <complex.h>
错误消息是"无法打开源文件复杂.h"。然后我删除了h,错误消失了。我遇到的第二个错误是 real() 和 imag()。错误消息是"标识符真实未定义"。
对于除法,我必须将它们分为实部和虚部,但我不知道如何解决这个问题。希望你们能帮到我。
-
complex
不是一个类型,它是一个类型模板。您需要将实部和虚部的类型指定为模板参数,例如complex<double>
. -
类型模板
complex
以及函数real
和imag
位于std
命名空间中。关于
complex<...>
,你可以写std::complex<...>
或使用命名空间std放置using std::complex; below your includes. (You could also write
;但习惯它可能很危险。关于
real
和imag
,他们可以使用ADL(一个rgument dependent lookup:当他们的参数在std
命名空间中时,函数名称也会在std
中自动查找),因此您无需为这些函数指定命名空间。 -
在第
a = &array1;
行(以及另一个类似的行)中,您指向整个数组array1
,这是一个指向数组的指针。你可能想要的是&array[1]
或只是array1
,因为数组可以隐式转换为指向它们的第一个元素的指针。 -
在
*a[i]
中,您可以访问数组中的第 i 个元素a
指向(a
本身不是指针,但数组下标运算符像数组一样处理指针)。然后取消引用该复杂类型,这是无效的。只需放下*
.
您可以在此处查看最终代码。
想像这样使用它:
#include <complex>
int main()
{
std::complex<float> *a;
std::complex<float> *b;
std::complex<float> array1[20];
std::complex<float> array2[20];
int real_part_array1[20];
int real_part_array2[20];
int imag_part_array1[20];
int imag_part_array2[20];
a = array1;
b = array2;
int i=0;
for (i=0;i<=19;i++)
{
real_part_array1[i] = std::real(a[i]);
imag_part_array1[i] = std::imag(a[i]);
real_part_array2[i] = std::real(b[i]);
imag_part_array2[i] = std::imag(b[i]);
}
return 0;
}
复杂不是一个类型,而是一个类型模板。因此,您可能希望使用复杂
真实和 imag 也在 std 命名空间中,因此 std::real 和 std::imag。
现在当你说 a = &array1 时,array1 已经是一个指针,你正在分配一个指向 LHS 的指针,这是一个指针,这是一个类型错误
- 如何将部分流作为参数传递
- 有没有办法修改'operator->',以便'z->im'返回复数的虚部
- 如何删除部分类?
- 如何只链接到柯南包中的部分库?
- 无法打印用户填充的部分数组的反面
- 使用类型特征的部分类专用化
- 将 CRTP 与部分类专用化结合使用?
- 为什么 C++17 标准没有带来部分类模板参数扣除?
- 是否可以保证输入<Type>实数时复杂对象的虚部设置为零?
- 如何在 Eigen3 库中高效提取复矩阵的实部/虚部?
- FFTW和OpenCV的C++接口,Mat输出中的实部和虚部
- 如何将实部和虚部放入一个变量中,就像在matlab中一样
- 在c++的复杂类中,为实部和虚部指定了多少位
- C++中的复杂数组 - 实部,想象部
- 复数的实部和虚部
- FFTW3:解释fftw_plan_r2c_1d输出并访问输出的虚部
- c++显示虚部为I的复数
- 在c++中获取指向复向量实部和虚部的指针
- 用C++中的[]运算符可以访问复数的实部和虚部吗
- C++复数的最高元素(最高实部)