10 2013 档案
摘要:数组和指针类似于vector和迭代器。 区别在于:数组的长度是固定的.数组一经创建,就不允许添加新的元素.指针则可以像迭代器一样用于遍历和检查数组中的元素. 设计良好的程序只有在强调速度时才在类实现的内部使用数组和指针. 没有所有元素都是引用的数组. 1.在函数体外定义的内置数组,其元素均初始化为0; 2.在函数体内定义的内置数组,其元素无初始化; 不管数组在哪里定义,如果其元素为类类...
阅读全文
摘要:string类型的输入操作符: 1.读取并忽略开头所有的空白字符(如空格,换行符,制表符). 2.读取字符直至再次遇到空白字符,读取终止。 用getline读取整行文本 getline.接受两个参数:一个输入流对象和一个string对象. int main() { string line; while(getline(cin,line)) co...
阅读全文
摘要:逻辑结构与物理结构 逻辑结构:1.集合结构.2.线性结构.3.树形结构.4.图形结构 物理结构:是指数据的逻辑结构在计算机中的存储形式 1.顺序存储结构:把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的. 2.链式存储结构:是把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的.数据元素的存储关系并不能反映其逻辑关系,因此需要用一个指针存放...
阅读全文
摘要:为了节省内存,c/c++把常量字符串放到单独的一个内存区域。当几个指针赋值给相同的常量字符串时,它们实际上会指向相同的内存地址。但用常量内存初始化数组,情况却有所不同。int _tmain(int argc, _TCHAR* argv[]){ char str1[]="hello world"; char str2[]="hello world"; char* str3 = "hello world"; char* str4 = "hello world"; cout<<(str1==str2)<
阅读全文
摘要:Use private inheritance judiciously. 如果classes之间的继承关系是private,编译器不会自动将一个derived class对象转换为一个base class对象。这和public继承的情况不同。 由private base class继承而来的所有成员,在derived class中都会变成private属性,纵使他们在base class中原本...
阅读全文
摘要:Differentiate between inheritance of interface and inheritance of implementation. 请记住:接口继承和实现继承不同,在public继承之下,derived classes总是继承base class的接口. pure virtual函数只具体指定接口继承。 简朴的(非纯)impure virtual函数具体指定接...
阅读全文
摘要:Avoid hiding inherited name. 记住: 1.dervied classes内的名称会遮掩base classes内的名称。在public继承下从来没有人希望如此. 2.为了让被遮掩的名称重见天日,可使用using 声明式或转交函数(forwarding functions);
阅读全文
摘要:Make sure public inheritance models “is –a “ 如果令clsss D 以public的形式继承class B,你便是告诉编译器说,每一个类型为D的对象同时也是一个类型为B的对象,反之不成立。你的意思是B比D表现出更一般化的概念,而D比B表现出更特殊化的概念。你主张"B"对象可以派上用场的任何地方,D对象一样可以派上用场。因为每一个D对象都是一个B对象。反...
阅读全文
摘要:当异常被抛出时,带有异常安全性的函数: 1.不泄露任何资源 2.不允许数据败坏 异常安全函数提供以下三个保证之一: 1.基本承诺:如果异常被抛出,程序内的任何事物仍然保持在有效的状态下。没有任何对象或数据结构会因此而败坏,所有对象都处于一种内部前后一致的状态。 2.强烈保证:如果异常被抛出,程序状态不改变.调用这样的函数需有这样的认知:如果函数成功,就是完全成功,如果函数失败,程序...
阅读全文
摘要:缺省情况下c++以by value的方式传递对象至(或来自)函数。除非你另外指定,否则函数参数都是以实际实参的复件(副本)为初值,而调用端所获得的亦是函数返回值的一个复件。这些复件是由对象的copy构造函数产出,这可能使得pass-by-value成为昂贵的操作. #include "stdafx.h" #include #include class Wind...
阅读全文
摘要:int a =2,b=3; int &c= a; c指向a以后就永久的指向a了 cout<<c<<endl; c=b;//这里并不是让c指向了b.然后让a=b; cout<<a<<endl;
阅读全文
摘要:Read:高通量测序平台产生的序列就称为reads。 Contig:拼接软件基于reads之间的overlap区,拼接获得的序列称为Contig(重叠群)。 Scaffold:基因组de novo测序,通过reads拼接获得Contigs后,往往还需要构建454 Paired-end库或Illumina Mate-pair库,以获得一定大小片段(如3Kb、6Kb、10Kb、20Kb)两端的序列...
阅读全文
摘要:根据一个打分系统,怎么样排对起来打分能够最大.就认为历史上应该是这样子的. 数据同源搜索软件Fasta和Blast 是目前功能最全,使用最广的同源性数据库搜索软件包。他们在Needleman的动态算法的基础上做了很多技术上的改进,如采用启发式算法。使得在精确度牺牲较小的情况下,速度快了很多。 FASTA.是1985年提出的一个全局联配算法. BLAST.是1990年提出的。最初被设计...
阅读全文
摘要:NCBI的检索软件ENtrez及两大数据库:GenBank和RefSeq EBI的核酸序列数据库EMBL及其它服务 上面这两个主要是针对核酸的 Swiss-Prot蛋白序列数据库(蛋白质服务用) PDB生物大分子三维结构数据库. SCOP蛋白质结构分类数据库。 Entrez及两大数据库:GenBank和RefSeq NCBI:美国国家生物技术信息中心(National Cent...
阅读全文
摘要:用一段序列的复杂度来测度这段序列可能是编码区呢?还是编码区?如果这短序列的复杂性越高,也就是说花样越多的话。这段序列越像是编码区。 外显子是被内含子隔开的. 用数据库资源如何发现新基因 通过数据库资源发现新基因的途径: 1.这两个途径就是你用了什么样的数据库资源,利用数据库当中的基因组序列进行来发现新的基因.发现新的编码序列.通过实验得到的基因组序列发现先的编码序列。 原理是...
阅读全文
摘要:大规模基因组测序中的信息分析 -- 拼接与注释 大规模测序是基因组研究的最基本任务,它的每一给环节都与信息分析紧密相关。从测序仪的光密度采样与分析、碱基读出、载体识别与去除、拼接与组装、填补序列间隙、到重复序列标识、读框预测和基因标注的每一步都是紧密依赖基因组信息学的软件和数据库的。 DNA测序仪,测的是光密度。每个碱基是四个不同颜色的光.所以一开始你就需要把光密度变成碱基图样。这是生物信息...
阅读全文
摘要:什么是生物信息学? 他是一个学科领域,包含着基因组信息的获取,处理,存储,分配(第一部分:把信息拿来管好帮助用户使用好),分析和解释(第二部分:破译遗传信息中生病之类的基本规律,获取基本规律的发掘与获得)的所有方面。 从美国的三个国家计划说起:曼哈顿计划(核弹,核能,能源革命);阿波罗计划(人类探索宇宙,走出地球空间的革命);人类基因组计划(上个世纪80年代末。90年代初,1990年开始,通过...
阅读全文
摘要:copy构造函数被用来"以同型对象初始化醉卧对象",copy assignment操作符被用来"从另一个同型对象中拷贝其值到自我对象":#include "stdafx.h"#include using namespace std;class Widget{public:Widget();//默认构造函数Widget(const Widget& rhs);//复制构造函数Widget& operator = (const Widget& rhs);//赋值操作符};int _tmain(int argc, _T
阅读全文
摘要:size_t只是一个typedef,是c++计算个数,如字符串内的字符个数或者stl容器内的元素个数时用的某种不带正负号unsigned类型。它也是vector,deque和string内的operator[]函数接受的参数类型。
阅读全文
摘要:c++中,模板是泛型编程的基础.模板是创建类或函数的蓝图或公式。函数模板是一个独立于类型的函数,可作为一种方式,产生函数的特定类型版本。模板定义以关键字template开始,后接模板形参表,模板形参表是用尖括号括住的1个或多个模板形参的列表,形参之间以逗号分隔.#include "stdafx.h"#include #includeusing namespace std;template int compare(const T &v1,const T &v2){if(v1inlineT min(const T&,const T&);模板类型形
阅读全文
摘要:// leran.cpp : 定义控制台应用程序的入口点。#include "stdafx.h"#include#include #include#includeusing namespace std;class GT_cls{public:GT_cls(size_t val = 0):bound(val){}bool operator()(const string &s){return s.size()>=bound;}private:std::string::size_type bound;};int _tmain(int argc, _TCHAR* ar
阅读全文
摘要:在函数形参表后面写上 =0 以指定纯虚函数:class Disc_item:public Item_base{public: double net_price(std::size_t) const = 0;}将函数定义为纯虚能够说明,该函数为后代类型提供了可以覆盖的接口。但是这个类中的版本绝不会调用。重要的是,用户将不能穿件Disc_item类型的对象。试图创建抽象基类的对象将发生编译时错误.Disc_item discounted;//error:can't define a Disc_item object;Bulk_item bulk;//Bulk_item继承自Disc_ite
阅读全文
摘要:派生类构造函数 派生类的构造函数受继承关系的影响,每个派生类构造函数除了初始化自己的数据成员之外,还要初始化基类,也会运行基类的构造函数 。#include "stdafx.h"#include using namespace std;class Ctest{public:Ctest(int a=1,int b=2,int c=3){cout discount_policy();itemP -> discount_policy();//错误...因为在Item_base里面没有这个方法discount_policy();设计派生类的时候,只要可能,最好避免与基类成员的
阅读全文
摘要:protected成员可以认为protected访问标号是private 和public 的混合:1.像private成员一样,protected成员不能被类的用户访问.2.像public成员一样,protected成员可被该类的派生类访问.此外,protected还有另一个重要性质:派生类只能通过派生类对象访问其基类的protected成员,派生类对其基类类型对象的protected成员没有特殊访问权限.少量的理解:#include "stdafx.h"#includeusing namespace std;class Ctest{public:Ctest(int a=1
阅读全文
摘要:最大子数组问题:找出数组中和最大的最大的非空连续子数组.这里定义一个ret的类来进行存储三个值.用public只是用来方便读取和使用..#include "stdafx.h"#includeusing namespace std;class ret{public:ret(void){};ret(in...
阅读全文
摘要:分治法的思想:将原问题分解为几个规模较小但类似于原问题的子问题,递归地求解这些子问题,然后再合并这些子问题的解来建立原问题的解。 1 2 #include "stdafx.h" 3 #include 4 using namespace std; 5 6 void Merge(int *arr,int p ,int q ,int r);//归并排序 7 8 void mergesort(int *arr,int p,int r); 9 void ViewData(int *,int len);10 int _tmain(int argc, _TCHAR* argv[])11
阅读全文
摘要:插入排序:对于少量元素的排序,是一个比较有效的算法。#include "stdafx.h"#includeusing namespace std;void Insertion_Sort(int *,int );//插入升序排序void Insertion_SortDown(int *,int );//插入降序排序void ViewData(int *,int len);//读数据int _tmain(int argc, _TCHAR* argv[]){int arr[]={5,2,12,34,2,4,6,1,3};size_t len=sizeof(arr)/sizeof(
阅读全文
摘要:读入一些整数,逆序输出 :#include using namespace std;int main(){ const int MAX = 100;int arr[MAX];int temp,index=0;while(cin>>temp,temp!=0)arr[index++]=temp;while(index>0)coutusing namespace std;int main(){ int n=0,k=0;//初始化n为灯 k为人的个数cin>>n>>k;int lamp[100];for(int i = 0;i!=n;++i){lamp[i]=
阅读全文

浙公网安备 33010602011771号