C++STL complex吃書使用指南


說在前面:

complex即為復數

使用c++自帶的complex類型,首先要有<complex>頭文件,還要使用std命名空間

聲明方式:

complex <T> a;  聲明一個類型為T的復數a,T可為int,float,double,long double,甚至是string等各種類型。如果類型非數值類型,只會導致一些函數無法使用。可見complex本質與元素對類似。

  類型可為自建的類/結構體類型,這時只需重載一些東西((流)輸入輸出,運算符,常用函數...)

可使用構造函數:

complex <T> a(x,y) ;   聲明一個實部為x,虛部為y的復數a。可沒有第二個參數,此時默認虛部為0。

complex <T> (x,y)  構造一個實部為x,虛部為y的復數,常常用於賦值。

運算:

一元運算符:+(正號),-(負號)后接實數或復數

二元運算符:

  =(賦值),+=,-=,*=,/= 后接實數或復數(復數類型可與運算符前的復數不同)  

  +,-,*,/,==,!= 兩邊實數復數均可,只要求一邊實數另一邊復數時兩數同一類型(都是double等)

輸入輸出方式:

1、使用流輸入輸出。復數的流輸出是有序數對的形式,流輸入可以只輸入一個數(為實部,此時虛部默認為0),或一個有序數對(數對也可以無第二個數,此時效果等同於只輸入一個數),如:

 

 2、通過用.imag()和.real()函數直接操作復數的實部虛部(printf,scanf(別忘加&),快讀快輸出等)

常用函數:

1參:

real():返回可修改的復數實部

imag():返回可修改的復數虛部

abs():求模。

norm(): 函數模板會返回復數的量的平方。

arg() :返回以弧度為單位的復數 z幅角的主值, 相當於atan(z.imag()/z.real())。

conj():返回共軛復數。

sqrt():復數平方根(一定有解,可由復數的三角表示易知)

cos(),cosh(),sin(),sinh(),tan(),tanh():返回復數的相應值(與幅角的相應值不是一個概念)

以上函數除了conj()返回相應類型復數,其余都返回復數的類型。

exp,log,log10,四個pow,prqj,待以后深究

2參:

polar() 函數模板接受量和相角作為參數,並返回和它們對應的復數對象。復數類型為參數類型,參數類型必須相同。

特殊:

.real():有參則為復數實部賦值,無返回值;無參則同real()。

.imag():有參則為復數虛部賦值,無返回值;無參則同imag()。

后記:

對於一個括號內若干由逗號隔開的數,若前沒有復數的聲明定義,則只是一個逗號表達式,會返回最后一個數的值。

現已吃到complex源文件488行,待繼續填坑                                                                                                            


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM