说在前面:

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行,待继续填坑                                                                                                            

C++STL complex吃书使用指南的更多相关文章

  1. 小橙书阅读指南(十三)——连通性算法(union-find)

    上一章我大概说明了什么是图论以及无向图的基础概念,本章我们要研究一种更普遍的算法——连通性算法.它属于图论的分支,也是一种抽象算法.在深入算法之前,我们先提出一个具体的问题:假设在空间中存在N个点,我 ...

  2. 【白书训练指南】(UVa10755)Garbage Heap

    先po代码,之后把我那几个不太明了的知识点讲讲,巩固以下.三维的扫描线算法想要掌握还真是有一定的难度的. 代码 #include <iostream> #include <cstri ...

  3. 容器使用的12条军规——《Effective+STL中文版》试读

    容器使用的12条军规——<Effective+STL中文版>试读     还 记的自己早年在学校学习c++的时候,老师根本就没有讲STL,导致了自己后来跟人说 起会C++的时候总是被鄙视, ...

  4. 泛型编程、STL的概念、STL模板思想及其六大组件的关系,以及泛型编程(GP)、STL、面向对象编程(OOP)、C++之间的关系

    2013-08-11 10:46:39 介绍STL模板的书,有两本比较经典: 一本是<Generic Programming and the STL>,中文翻译为<泛型编程与STL& ...

  5. POJ 2947 Widget Factory(高斯消元)

    Description The widget factory produces several different kinds of widgets. Each widget is carefully ...

  6. uva 3523 Knights of the Round Table

    题意:给你n,m n为有多少人,m为有多少组关系,每组关系代表两人相互憎恨,问有多少个骑士不能参加任何一个会议. 白书算法指南 对于每个双联通分量,若不是二分图,就把里面的节点标记 #include ...

  7. DLX 舞蹈链 精确覆盖 与 重复覆盖

    精确覆盖问题:给定一个由0-1组成的矩阵,是否能找到一个行的集合,使得集合中每一列都恰好包含一个1 还有重复覆盖问题 dancing links 是 一种数据结构,用来优化搜索,不算是一种算法.(双向 ...

  8. JAVA学习,是一条漫长的道路

    我在Java 1.0正式问世前就开始学习Java,这么多年过去了,到现在我的Java学习历程还没有停过.我阅读原文书,研究原始码,撰写程序,自认为走得扎实,不奢望一步登天.像我这样老式的学习方式,显然 ...

  9. item 5: 比起显式的类型声明,更偏爱auto

    本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误.谢谢! 博客已经迁移到这里啦 啊,简单愉快的代码: int x; 等等,讨厌!我忘了初始化x,所 ...

随机推荐

  1. .NET三层架构各项目之间的引用关系及如何添加引用?

    1.1三层之间的引用 整个.NET框架的项目创建完成之后,在开发之前,还需要建立各个项目之间的引用关系,以便在编写C#业务逻辑代码时调用相关项目的类库. 1.1.1 引用关系规则 .NET三层架构中的 ...

  2. 牛逼!Python的判断、循环和各种表达式(长文系列第2篇

    流程控制是python语法很重要的一个分支,主要包括我们经常用到的判断语句.循环语句以及各种表达式,这也是上一篇文章没有介绍表达式的原因,在这篇文章中会更加系统全面的讲解这三方面的基础知识. 很多人学 ...

  3. Vue组件注册

    全局注册方法 Vue.component('my-component-name', { // ... 选项 ... }) Vue.component('component-a', { /* ... * ...

  4. 16、Mediator 仲裁者模式

    只有一个仲裁者 Mediator 模式 组员向仲裁者报告,仲裁者向组员下达指示,组员之间不在相互询问和相互指示. 要调整多个对象之间的关系时,就需要用到 Mediator 模式.将逻辑处理交给仲裁者执 ...

  5. GitLab 转让所有者权限

    GitLab 转让所有者权限 没有查看文档,自己测试了一下,可能会有纰漏,谨慎阅读 私人项目的所有者 私人项目没有所有者权限,可以认为项目命名空间就是所有者. 私人项目http://xxxxxxxxx ...

  6. IOS - ACL (访问控制列表)

    ACL 介绍 ACL 是一款 IOS 软件工具,而不是某种协议.从名字上来看,ACL 的主要功能是控制对网络资源的访问.事实上这是 ACL 最早的用途.现在 ACL 除了能够限制访问外,更多时候,我们 ...

  7. 2020-03-25:快排、堆排和归并都是O(nlog n)的算法,为何JDK选择快速排序?

    福哥答案2020-03-26: 口诀如下:冒选插希快 堆归计桶基(冒泡,选择,插入,希尔,快速,堆,归并,计数,桶,基数)冒线 平平 稳常小选平 平平 不常小插线 平平 稳常序希线 四组 不常组快四 ...

  8. C#LeetCode刷题之#110-平衡二叉树(Balanced Binary Tree)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/4074 访问. 给定一个二叉树,判断它是否是高度平衡的二叉树. 本 ...

  9. 03 Arduino-模拟输出与PWM的操作方法

    在arduino开发板上面,标注为PWM的管脚的可以被当作数模转换管脚使用 01 模拟输出  analogWrite(pin, value) pin: 选定的引脚号码  value:取值范围 0-25 ...

  10. 拼接html不显示layui进度条解决方法

    最新有个新需求,要异步拼接html并渲染数据,并且我这边是用layui的flow.load(流加载)渲染多个进度条.按官网给出的 element.progress('demo', n+'%'); 就是 ...