簡體   English   中英

在C ++中初始化復數數組

[英]Initializing complex number array in C++

我需要創建一個由復數組成的數組。 我使用以下代碼初始化它。

std::complex<double> Uf[2]={(1, 2),(3, 4)};

我期待Uf [0]為1 + 2*iUf[1]3+ 4*i但是當我調試程序時,我發現虛數值顯示為真實,而令人驚訝的虛數值為零這兩個數字(即Uf[0]是真實的: 2.0000.. imag: 0.0000 ....和Uf[1]是真實的: 4.0000 .. imag: 0.0000 ..。有人可以解釋我如何解決這個問題嗎?

謝謝

這是因為你使用的是逗號運算符 ,所以復數值將分別用24初始化。 而是用大括號替換括號:

std::complex<double> Uf[2]={{1, 2},{3, 4}};

如果上述方法不起作用,則編譯器不兼容C ++ 11,您必須顯式創建數組復雜成員:

std::complex<double> Uf[2]={std::complex<double>(1, 2),std::complex<double>(3, 4)};

您正在初始化數組錯誤。 嘗試這個:

std::complex<double> Uf[2]={{1, 2},{3, 4}};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM