内联函数Inline Function:
在C++中,函数调用需要建立栈环境,进行参数复制,保护调用现场,返回时,还要进行返回值复制,恢复调用现场。
对函数的内联声明必须在调用之前。因为内联函数的代码在程序运行时是直接嵌在调用处执行,不影响链接,只在编译时确定运行代码。
内联函数体应该尽可能小,且要结构简单,这样嵌入的代码才不会影响调用函数的主体结构。所以在内联函数中,不能含有复制的结构控制语句。否则无视内联声明。
并不是任何函数都能内联的,编程时函数虽然打上了内联标记,却并不总是能被编译成内联方式。因此程序员不失时机地构造能够内联的函数才是重要的。
数据结构Data Structures
STL中的容器(STL Container)——向量vector 、链表list、栈stack、队列deque
算法Algorithms
数值计算Numerical Computation
标准C++算法
集合元素访问Element Access of set——迭代器对象"容器类型<元素类型>::iterator"
动态内存Dynamic Memory
预留向量空间——reserve可以控制向量既不浪费太多空间,又使插入效率提高,还能应付元素个数不确切的复杂局面。
蛮做素数判断Judging Prime Foolhardily
空间换时间——动态内存空间受到硬件和操作系统的限制,也并非可以无休止地满足程序员的空间申请。
低级编程——是相对于面向对象或基于对象的抽象层次更高的高级编程而言,就是:
1.不用C++ STL的资源库,尽量减少内在的创建、调用、分配等的开销;
2.对程序管辖的内存进行直接操作访问,无视数据类型的威力;
3.尽量使用原始数据结构、数组和指针以及语言内部的运算符;
4.能省则省,采用不利于规模化的编程方法;
5.只调用C函数库;
6.在程序架构上多采用过程化程序设计方法。