[英]Initializing complex number array in C++
我需要創建一個由復數組成的數組。 我使用以下代碼初始化它。
std::complex<double> Uf[2]={(1, 2),(3, 4)};
我期待Uf [0]為1 + 2*i
和Uf[1]
為3+ 4*i
但是當我調試程序時,我發現虛數值顯示為真實,而令人驚訝的虛數值為零這兩個數字(即Uf[0]
是真實的: 2.0000..
imag: 0.0000
....和Uf[1]
是真實的: 4.0000
.. imag: 0.0000
..。有人可以解釋我如何解決這個問題嗎?
謝謝
這是因為你使用的是逗號運算符 ,所以復數值將分別用2
和4
初始化。 而是用大括號替換括號:
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.