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行,待继续填坑
C++STL complex吃书使用指南的更多相关文章
- 小橙书阅读指南(十三)——连通性算法(union-find)
上一章我大概说明了什么是图论以及无向图的基础概念,本章我们要研究一种更普遍的算法——连通性算法.它属于图论的分支,也是一种抽象算法.在深入算法之前,我们先提出一个具体的问题:假设在空间中存在N个点,我 ...
- 【白书训练指南】(UVa10755)Garbage Heap
先po代码,之后把我那几个不太明了的知识点讲讲,巩固以下.三维的扫描线算法想要掌握还真是有一定的难度的. 代码 #include <iostream> #include <cstri ...
- 容器使用的12条军规——《Effective+STL中文版》试读
容器使用的12条军规——<Effective+STL中文版>试读 还 记的自己早年在学校学习c++的时候,老师根本就没有讲STL,导致了自己后来跟人说 起会C++的时候总是被鄙视, ...
- 泛型编程、STL的概念、STL模板思想及其六大组件的关系,以及泛型编程(GP)、STL、面向对象编程(OOP)、C++之间的关系
2013-08-11 10:46:39 介绍STL模板的书,有两本比较经典: 一本是<Generic Programming and the STL>,中文翻译为<泛型编程与STL& ...
- POJ 2947 Widget Factory(高斯消元)
Description The widget factory produces several different kinds of widgets. Each widget is carefully ...
- uva 3523 Knights of the Round Table
题意:给你n,m n为有多少人,m为有多少组关系,每组关系代表两人相互憎恨,问有多少个骑士不能参加任何一个会议. 白书算法指南 对于每个双联通分量,若不是二分图,就把里面的节点标记 #include ...
- DLX 舞蹈链 精确覆盖 与 重复覆盖
精确覆盖问题:给定一个由0-1组成的矩阵,是否能找到一个行的集合,使得集合中每一列都恰好包含一个1 还有重复覆盖问题 dancing links 是 一种数据结构,用来优化搜索,不算是一种算法.(双向 ...
- JAVA学习,是一条漫长的道路
我在Java 1.0正式问世前就开始学习Java,这么多年过去了,到现在我的Java学习历程还没有停过.我阅读原文书,研究原始码,撰写程序,自认为走得扎实,不奢望一步登天.像我这样老式的学习方式,显然 ...
- item 5: 比起显式的类型声明,更偏爱auto
本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误.谢谢! 博客已经迁移到这里啦 啊,简单愉快的代码: int x; 等等,讨厌!我忘了初始化x,所 ...
随机推荐
- Java自学-JDBC 数据库连接池
数据库连接池 与线程池类似的,数据库也有一个数据库连接池. 不过他们的实现思路是不一样的. 本章节讲解了自定义数据库连接池类:ConnectionPool,虽然不是很完善和健壮,但是足以帮助大家理解C ...
- vue cli4构建基于typescript的vue组件并发布到npm
基于vue cli创建一个vue项目 首先安装最新的vue cli脚手架, npm install --global @vue/cli npm WARN optional SKIPPING OPTIO ...
- python4.4模块
import random #import导入,random随机数模块a=random.random() ...
- 027_go语言中的通道选择器
代码演示 package main import "fmt" import "time" func main() { c1 := make(chan strin ...
- Python | 常见的反爬及解决方法,值得收藏
我们都知道Python用来爬数据,为了不让自家的数据被别人随意的爬走,你知道怎么反爬吗?今天播妞带着大家一起见识见识常见的反爬技术. 很多人学习python,不知道从何学起.很多人学习python,掌 ...
- 【项目实战】sass使用基础篇(上)
Sass是一种CSS预处理语言.CSS预处理语言是一种新的专门的编程语言,编译后形成正常的css文件,为css增加一些编程特性,无需考虑浏览器的兼容性(完全兼容css3),让css更加简洁.适应性更强 ...
- linux系统中SSH免密设置报错
执行 ssh-add ~/.ssh/msi_rsa 时报下面错误 Could not open a connection to your authentication agent. 解决办法: 执行命 ...
- JS学习第九天
DOM创建表格: insertRow(index) 在指定索引位置插入一行 deleteRow(index) 删除表格中index索引处的行 insertCell(index) 在index处创建一个 ...
- 2020-04-24:Object obj = new Object()这句话在内存里占用了多少内存
福哥答案2020-04-25:这道题最好把对象和变量分开说明,否则容易产生误解.以下都是64位环境下.针对对象:压缩状态:MarkWord 8+klass 4+数据0+对齐4=16非压缩状态:Mark ...
- C#LeetCode刷题-动态规划
动态规划篇 # 题名 刷题 通过率 难度 5 最长回文子串 22.4% 中等 10 正则表达式匹配 18.8% 困难 32 最长有效括号 23.3% 困难 44 通配符匹配 17.7% ...