摘要:Chapter071、前缀注释:在源文件前面加上的标准注释,可以加入 文件/类名/;最后一次修改时间;原作者;文件/类的简单描述;未完成的特性;已知的bug等信息2、变量命名约定:常见前缀前缀示例解释用法mmData成员 member类中的数据成员ssLookUpTable静态 static静态变量或数据成员,类变量kkMaxLength常量 konstant指示一个常量值(也可全大写表示)ffCompleted标志 flag指示一个布尔值,表示一个yes no属性n/mnLines/mLines数字 number作为一个计数器的数据成员tmptmpName临时 temporary一个临时变量
阅读全文
摘要:2012-05-16Chapter041、容器分类 顺序容器:向量vector,列表list。双端队列deque→存储一个元素序列 容器适配器:队列queue,优先队列priority queue,栈stack→建立在三种顺序容器之上的接口 关联容器:集合set,映射map(包含多集,多映射)→建立了键与值的关联 在set中,键本身就是值 特殊容器:位集bitset2、set按有序方式存储元素,插入、删除、查找都是O(logn) 底层用平衡二叉树实现→使用情况:如果希望插入删除和查找性能相当 set不允许有重复的元素 ∴可用multiset存储重复的元素3、map存储了键/值对 元素按键排序,
阅读全文
摘要:2012-05-14Chapter011、构建一个C++程序过程:预处理→编译→链接 预处理:交由预处理器处理的指令以#开头预编译器指令功能常见用途#include [file]将指定的文件代码插入到指令所在位置包含头文件#define key value指定key的每次出现都替换为value在C中定义常量或宏C++中有更好的方法#ifdef [key]#ifndef [key]#endif有条件的包含或者忽略ifdef ifndef块中的代码避免循环包含,即避免代码被多次包含#pragma不同的编译器不一样尽量不用 编译:翻译为机器可读的对象文件 链接:单个或多个对象文件link到一起构成一
阅读全文
摘要:2012-05-07Chapter181、表驱动法→从表里面查找信息而不使用if,case等语句 如,一个月有多少天,可维护数组days[12]={31,28,31,30……31} 则,day=days[month-1]; 省去判断if(month==1)…… 优点:可读性好;易于修改2、已知a,b与min(),max(),保证数x介于a,b之间(a<b) max( min(b,x) , a )3、索引访问表:有时候不能把数据直接作为键值假设商店有100种商品,编号范围从0000-9999,存储单价,库存等信息,一条记录100字节法一:直接建立主表,建立一个Info[10000],共用1
阅读全文
摘要:2012-05-05Chapter161、预先不知道循环要迭代多少次——建议使用while循环 需要一个执行次数固定的循环——建议使用for循环2、对于for,在循环结束后不要滥用下表的最终取值 例如,for(i=0;i<length;i++) {……} process(i); //此处滥用了i 正解:在循环体内某个适当地方将最终取值赋给某个变量带出3、对于while,i++之类的表达式目的不是完成循环工作,而是控制循环;此类语句放在循环开始或末尾4、一个循环只做一件事5、在循环(尤其是多维数组)时,用有意义的名字来避免I,j,k等命名6、把循环下标变量的作用域限制在循环内 对于for(
阅读全文
摘要:2012-05-03Chapter131、把指针操作限制在子程序或类里面 例:对于一个链表,通过NextLink(),InsertLink(),DeleteLink()等子程序操作指针,即集中控制数据2、按正确的顺序删除指针(释放当前指针之前,确保已经有指向下一个元素的指针)3、删除或释放指针后将其设为空值(避免迷途指针)4、向子程序传递对象时→按引用传递而非按值(避免复制该对象,提高效率) 当希望按值传递时(比如,不想误修改传入对象)→按const引用5、只有万不得已时才使用全局数据 考虑以下替换方案 1)先把变量设为局部的,仅当需要时才设为全局的 2)区分全局变量和类变量→模块化 3)使用
阅读全文
摘要:Chapter123、对浮点数不可直接比较大小,而应用两者之差<某个特定值的方式 例:double sum=0.0,test=1.0 for(i=0;i<10;i++) sum+=0.1; if(sum==test)//很有可能不相等,sum最终值为0.999999997 ∴自定义函数equals bool Equals(double s1,double s2){ if(fabs(s1,s2)<0.000001) return true; return false;}则可直接比较4、避免使用神秘字符与神秘字符串,用具名常量来加以取代5、C语言字符串 将长度声明为constan
阅读全文
摘要:Chapter101、变量初始化原则 在声明的时候初始化,在靠近第一次使用变量的位置声明和定义该变量2、减少变量的跨度(两次或多次使用的间隔)与生存时间(从声明到释放) ∴尽可能少用全局变量3、每个变量只用于单一用途,把使用相同变量的语句尽可能集中在一起Chapter111、变量名要有意义,通常表达的是what而不是how,且长度介于8-12之间(10-16尤佳) 较长的名字适用于很少用到的变量或者全局变量 较短的名字适用于局部变量或循环变量2、变量名中限定词(如Total,Sum,Max,Index,Arrange)建议加至名字最后 如 revenueTotal 总收入 MaxPoints建
阅读全文