摘要:
part 1 设计模式简介 课程目标 1.理解松耦合设计思想 2.掌握面向对象设计原则 3.掌握重构技法改善设计 4.掌握GOF 核心设计模式 什么是设计模式? “每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重... 阅读全文
摘要:
part 1 编译器 vs2015 VC++。 完整的错误信息粘贴如下:d:\program files (x86)\microsoft visual studio 14.0\vc\include\utility(361): error C2338: tuple_element index ou... 阅读全文
摘要:
一,举例应用 在ACM比赛中常使用 stdlib.h 中自带的 qsort 函数,是教科书式的函数指针应用示范。#include #include int comp(const void*a, const void*b){ return *(int*)a - *(int*)b;}int ma... 阅读全文
摘要:
特性(traits):对于某种可能会出错的返回值型别(Return Type),利用类模版进行部分特例化。其思想类似设计模式。 我们只能部分特例化类模板,而不能部分特例化函数模版。——《C++ Primer(5th)》 P628part 1.实现 Sigma 函数 功能:将一段范围内的元... 阅读全文
摘要:
part 1 C++模版简介一,模版概观1.模板 (Templates)是C++的一种特性,允许函数或类(对象)通过泛型(generic types)的形式表现或运行。 模板可以使得函数或类在对应不同的型别(types) 的时候正常工作,而无需为 每一个型别都写一份代码。2.C++主要有两种类型的模... 阅读全文
摘要:
一,开发工具 编译器 GCC 调试工具 GDB 代码编辑 Vim 1. 编译命令 -o 为生成的可执行文件指定名称。 -Wall 打印所有警告。 -E 把用户定义的所有的预定义#define展开,会生成 .i 后缀的C源文件。 -c 生成二进制文件,后缀名 .o -g 生成可调试的可执行二进制文件 阅读全文
摘要:
第0部分 简介1. 举个例子:面试的时候,可能会出一道算法考试题,比如写一个 strstr 函数——字符串匹配。可能会想到用KMP算法来解题,但是该算法很复杂,不适宜在面试中使用。1.1 C++利用char*的例子。该方法的复杂度是O(n)。注意代码中的注释,每一对括号的后面都给出了注释说明,用于匹... 阅读全文
摘要:
“除了静态内存和栈内存之外,每个程序还拥有一个内存池。这部分空间被称作自由空间(free store)或堆(heap)。程序用堆来存储动态分配(dynamically allocate)的对象”——《C++ primer(第五版)》 P400 栈 *由系统自动管理,以执行函数为单位。 ... 阅读全文
摘要:
一,类与类之间的关系:继承(Inheritance)、复合(Composition)、委托(Delegation)。二,复合:表示 is-a ,该设计思想可以参照C语言的 struct 。1. 例子:源自STL中queue的源代码。 1 template > 2 class queue { 3 .... 阅读全文
摘要:
1. 类中含有指针—— class with pointer member(s) ——的情况经常发生,典型的有:string 类。2. STL中的 string 类太复杂,copy on write 等等特性。3. 采用“防卫式头文件声明”。4. s2 赋值给 s3。String s3("hello... 阅读全文