C++杂糅&笔记

                              当为解决某一个问题而且选择数据结构时候,应当执行以下几个步骤:

(1)    分析问题,确定算法遇到的资源限制(内外存空间限制和执行时间的限制)

(2)    确定必须支持的基本运算,度量每个运算所都到的资源限制.基本运算包括向数据结构插入一个新数据项,从数据结构中删除一个数据项和搜索指定的数据项.

(3)    选择最接近这些资源开销的数据结构(分析不同数据结构的比较和算法分析)

 

◆  思考在算法的时候先假设条件已经具备,在这样的条件上会有什么情况出现,然后再慢慢补全信息,最后在实现假设的条件

◆  散列:一个数*奇数有利于均匀分布

◆  定位最快的方法是散列,树可以转化为散列

◆  离散型的变量相互间的有无关系可以用并集操作,对于数据量比较大的:线性数组<表链<树<矩阵<散列

 

算法的定义:

(1)    有输入

(2)    有输出

(3)    确定性

(4)    有穷性

(5)    能行性

 

 算法效率时间测定

#include<time.h>

Long start,stop;

Time(&start);

程序段

Time(&stop)

Runtime=stop-start;

 

数据的存储结构有以下4种

(1)    顺序存储方法(Sequential storage) 定义:物理和逻辑上的元素都相邻—exp-数组

(2)    索引存储方法(Indexed storage) 除了元素信息还有索引表,索引项的一般形式:(关键码,地址).有稠密和稀疏索引.

(3)    链接存储方法(Linked storage) 定义:元素之间的逻辑关系用附加的指针指示.

(4)    散列存储方法(Hashing storage) 定义:关键码通过一个函数计算直接得到该结点的地址

 

数据类型分为原子类型(不可分)和结构类型

 

Assert.h库 的断言机制

程序插入assert(x>0) 如果满足x>0就可继续执行后续语句,否则调用stdlib.h中的abort()打印出错的行号和列号并终止执行.

 

抽象数据类型的特征是使用与实现分离,实行封装和信息隐蔽,把类型的声明实现分离开来

 

面向对象=对象+类+继承+消息通信

 

基类又称父类,超类或泛化类.派生类又称为子类或特化类.

 

建立对象的结构和为解决问题需要执行的时间序列(场景),据此建立类的继承层次结构.

 

Union有构造函数和析构函数,所有数据成员共享相同的存储空间(struct的阉割版)

 

静态声明的变量只有main结束才释放

 

Endl输出一个换行符并清空流

 

Printf的效率是cout的2倍

 

Open()文件操作函数返回文件开始地址

 

引用传递声明fun(T&);使用引用的的参数只能是对象或者变量

 

常值引用格式fun(constT& a);函数中不能修改常值函数,const成员函数不能调用非const成员函数

Int sum(int a[],int n)

{

       If(n>0)returna[n-1]+sum(a,n-1);

       Else return 0;

}

 

如果传递的是对象要注意构造函数中用new分配了的空间,如果不手工定义复制构造函数,那么当函数结束将会撤销空间, 造成调用者的对象已被撤销(引用传递不存在这种错误)

 

多态性(polymorphism)是指允许同一个函数(或操作符)有不同的版本,.对于不同的对象执行不同的版本.C++支持以下两种多态性:

(1)   编译时的多态性,表现为函数名(或操作符)的重载exp:C++的 abs(T)

(2)   运行时的多态性,通过派生类和虚函数来实现.

 

一个类至少有一个纯虚函数,那么该类就是抽象类(abstract class) 不能有实例,派生类必须要实现基类没有实现的所有函数

 

通常以下3种情况要用到递归

1.      定义是递归的:数列,阶乘等

2.      数据结构是递归的exp:

LinkNode *FindRear(LinkNode *f)

{

       If(f==NULL)returnNULL;

Else if(f->link==NULL)return f;

Else return FindRear(f->link);

}                                              

3.问题的解法是递归的:汉诺塔

 

递归和递推是不同的概念(递推问题可以用递归方法求解,也可以用迭代的方法求解)

求得问题规模为i-1的解后,能从以求得的规模为1,2,…,i-1的一系列的解,构造出问题规模为i的解

 

 尾递归可以直接用迭代直接写出(不用栈保存,因为后面的语句程序直接结束不用保存数据)

一般从递归过程改为非递归过程的方法是先根据递归算法画出程序流程图,然后建立起循环结构

 

二叉树有序是指有分左右孩子,跟度为2的树不同就在此

Rmq问题的标准解法是O(nlogn)的预处理,O(1)的查询

线段树可以实现O(nlogn)的预处理,O(logn)的查询

 

左偏树:对于每个内部节点都有shortest(lc(x))>shortest(rc(x));

(a)    最右边从根到外部节点路径是从根到外部结点路径中最短的,其长度就是shortest(x)

(b)    N>2^shortest(x)  -1(也是至少的内部结点);左偏树的前shortest(x)层不存在外部结点;

 

多文件中运用全局变量,其中一个文件直接int 其他文件全部用extern int

 

 

 

19<c++沉思录>

内容概要:本文详细介绍了扫描单分子定位显微镜(scanSMLM)技术及其在三维超分辨体积成像中的应用。scanSMLM通过电调透镜(ETL)实现快速轴向扫描,结合4f检测系统将不同焦平面的荧光信号聚焦到固定成像面,从而实现快速、大视场的三维超分辨成像。文章不仅涵盖了系统硬件的设计与实现,还提供了详细的软件代码实现,包括ETL控制、3D样本模拟、体积扫描、单分子定位、3D重建和分子聚类分析等功能。此外,文章还比较了循环扫描与常规扫描模式,展示了前者在光漂白效应上的优势,并通过荧光珠校准、肌动蛋白丝、线粒体网络和流感A病毒血凝素(HA)蛋白聚类的三维成像实验,验证了系统的性能和应用潜力。最后,文章深入探讨了HA蛋白聚类与病毒感染的关系,模拟了24小时内HA聚类的动态变化,提供了从分子到细胞尺度的多尺度分析能力。 适合人群:具备生物学、物理学或工程学背景,对超分辨显微成像技术感兴趣的科研人员,尤其是从事细胞生物学、病毒学或光学成像研究的科学家和技术人员。 使用场景及目标:①理解和掌握scanSMLM技术的工作原理及其在三维超分辨成像中的应用;②学习如何通过Python代码实现完整的scanSMLM系统,包括硬件控制、图像采集、3D重建和数据分析;③应用于单分子水平研究细胞内结构和动态过程,如病毒入侵机制、蛋白质聚类等。 其他说明:本文提供的代码不仅实现了scanSMLM系统的完整工作流程,还涵盖了多种超分辨成像技术的模拟和比较,如STED、GSDIM等。此外,文章还强调了系统在硬件改动小、成像速度快等方面的优势,为研究人员提供了从理论到实践的全面指导。
内容概要:本文详细介绍了基于Seggiani提出的渣层计算模型,针对Prenflo气流床气化炉中炉渣的积累和流动进行了模拟。模型不仅集成了三维代码以提供气化炉内部的温度和浓度分布,还探讨了操作条件变化对炉渣行为的影响。文章通过Python代码实现了模型的核心功能,包括炉渣粘度模型、流动速率计算、厚度更新、与三维模型的集成以及可视化展示。此外,还扩展了模型以考虑炉渣组成对特性的影响,并引入了Bingham流体模型,更精确地描述了含未溶解颗粒的熔渣流动。最后,通过实例展示了氧气-蒸汽流量增加2%时的动态响应,分析了温度、流动特性和渣层分布的变化。 适合人群:从事煤气化技术研究的专业人士、化工过程模拟工程师、以及对工业气化炉操作优化感兴趣的科研人员。 使用场景及目标:①评估不同操作条件下气化炉内炉渣的行为变化;②预测并优化气化炉的操作参数(如温度、氧煤比等),以防止炉渣堵塞;③为工业气化炉的设计和操作提供理论支持和技术指导。 其他说明:该模型的实现基于理论公式和经验数据,为确保模型准确性,实际应用中需要根据具体气化炉的数据进行参数校准。模型还考虑了多个物理场的耦合,包括质量、动量和能量守恒方程,能够模拟不同操作条件下的渣层演变。此外,提供了稳态求解器和动态模拟工具,可用于扰动测试和工业应用案例分析。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值