zoukankan      html  css  js  c++  java
  • 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行,待继续填坑                                                                                                            

  • 相关阅读:
    9.11 eventbus
    9.10,,,实现new instanceof apply call 高阶函数,偏函数,柯里化
    9.9 promise实现 写完了传到gitee上面了,这里这个不完整
    9.5cors配置代码
    9.5 jsonp 实现
    9.5 http tcp https总结
    9.3 es6 class一部分 and es5 class 发布订阅
    8.30 cookie session token jwt
    8.30vue响应式原理
    warning: LF will be replaced by CRLF in renard-wx/project.config.json. The file will have its original line endings in your working directory
  • 原文地址:https://www.cnblogs.com/InductiveSorting-QYF/p/13612439.html
Copyright © 2011-2022 走看看