摘要:
2.1、基本概念 2.1.1、贪心本质 1、只根据当前已有的信息做出选择,一旦选择,就不会改变。 2.1.2、利用贪心算法求解问题的2个特性 1、贪心选择性质 2、最优子结构 2.1.3、贪心算法秘籍 1、贪心策略:选择当前看上去最好的一个方案。 2、局部最优解:一步步地得到局部最优解 3、全局最优 阅读全文
摘要:
C++基础视频day04: 02、const修饰的是谁 指的是类中的const成员函数。void OpVar(int a, int b) const{} const修饰的是this指针,等价于void OpVar(const Test *this, int a, int b),因为this指针隐藏了 阅读全文
摘要:
chap06、递归 (157/364) 1、课前秀 自已调用自已,直接递归 间接递归 2、递归设计方法 2.1、递归模型 f(1)=1 :递归的终止条件(递归出口) f(n)=n*f(n-1) n > 1:递归体,给出了f(n)的值与f(n-1)的值之间的关系。 2.2、递归的执行过程 把“大问题” 阅读全文
摘要:
chap10、泛型算法 335(361/864) generic algorithm 10.1、概述 0 通常情况下,算法遍历范围,对其中每个元素进行一些处理。 find算法操作的是迭代器,所以与容器无关。 算法如何工作(以find为例) 迭代器令算法不依赖于容器,...... ......,但算法 阅读全文
摘要:
26、C++11新增的便利算法 0、课前秀 新增算法有点多,可以看cppreference链接 1、all_of、any_of和none_of算法 all_of检查区间[first,last)中是否所有的元素都满足一元判断式p,所有的元素都满足条件返回true,否则返回false。 any_of检查 阅读全文
摘要:
25、内存对齐 0、课前秀 1、内存对齐介绍 内存对齐(字节对齐):是一个数据类型所能存放的内存地址的属性。当我们说一个数据类型的内存对齐为8时,就是指这个数据类型所定义出来的所有变量的内存地址都是8的倍数。 当一个基本数据类型(Fundamental Types)的对齐属性和这个数据类型的大小相等 阅读全文
摘要:
24、final和override关键字 0、课前秀 抛开别的语言不谈,就重新引入两个关键字final和override final的意思是最终的,所以可以理解为最后的子类了。 1、final关键字 用于限制某个类不能被继承,或者某个虚函数不能被重写,修饰函数,final只能修饰虚函数,并且要放到类 阅读全文
摘要:
23、原始的字面量 0、课前秀 字面量的英文词是literal,之前我的理解跟 constant一样,可事实上并不一样,具体表示啥,我也没弄太清楚。 1、原始字面量初入 原始字面量可以直接表示字符串的实际含义,因为有些字符串带有一些特殊字符,比如在转义字符时,我们往往要专门处理。 例:打印一个文件路 阅读全文
摘要:
22、委托构造函数和继承构造函数 0、课前秀 1、委托构造函数 + 委托构造函数 :允许在同一个类中一个构造函数可以调用另外一个构造函数,从而可以在初始化时简化变量的初始化。 + 没有用构造函数的场景(无实际意义) + 委托构造函数的写法 + 使用委托构造函数需要注意: 使用了代理构造函数就不能用类 阅读全文
摘要:
21、通过智能指针管理第三方库分配的内存 0、课前秀 + 第三方库分配的内存一般需要通过第三方库提供的释放接口才能释放,由于第三方库返回的指针一般都是原始指针,在用完之后没有调用第三方库的释放接口,就很容易造成内存泄露。 1、示例 + 第三方库的释放(可能会存放跟new,delete一样,忘记释放或 阅读全文