《C++ Prime Plus》(7) 发表于 2019-03-02 | 更新于 2019-03-03 | 分类于 初识C++ 访问控制:protected 保护类像是其他两个访问控制类private(私有),public(公共)的结合体。在基类中使用protected定义的成员和方法,对于外界来说跟private定义的成员和方法无异;但是对于基类派生的类来说,protected定义的成员和方法跟public无异。 阅读全文 »
交换排序——快速排序 发表于 2019-02-28 | 分类于 C++进阶 算法描述 快速排序由冒泡排序演进而来,基于分治的算法思想。每次排序时选择一个元素作为“基准值”,经过一轮排序,通过某种划分算法将待排表分为左右两部分,其中左边的元素全都小于基准值,右边元素全都大于基准值。这样,基准值就被放在了它的最终位置。随后,再对左右两个子表递归进行上述操作,最终能够实现排序目的。 阅读全文 »
交换排序——冒泡排序 发表于 2019-02-28 | 分类于 C++进阶 算法描述 将待排元素逐个向前相比较,使待排子表中最小的元素浮动到自己的最终位置。每一趟排序确定一个元素的最终位置,最多进行n-1趟排序。 阅读全文 »
插入排序——折半插入排序 发表于 2019-02-28 | 分类于 C++进阶 算法描述 与直接插入排序算法相比,折半插入排序算法只是将寻找插入位置这一过程进行了优化,采用折半查找法能更快找到待插入位置。 阅读全文 »
插入排序——直接插入排序 发表于 2019-02-27 | 更新于 2019-02-28 | 分类于 C++进阶 算法描述 假设待排数据存放在一维数组L[n]中,待排表在某一时刻的状态可分为三部分:(1)前面i个数据L[0],···,L[i-1]是已经使用直接插入排序排好的有序子表,简记为A。(2)第i个元素L[i]是本轮排序待排元素,简记为B。(3)后面n-i-1个元素L[i+1],···,L[n]是未排序的原始数据,简记为C。 阅读全文 »
《C++ Prime Plus》(6) 发表于 2019-02-27 | 更新于 2019-03-02 | 分类于 初识C++ 成员函数重载操作符的缺陷 在上一篇笔记中提到的操作符重载函数有一个隐藏的缺陷。看似平等的位于操作符两侧的两个操作数,实际上却不平等:123Time time3 = time1 + time2;// equals toTime time3 = time1+(time2); 阅读全文 »
《C++ Prime Plus》(5) 发表于 2019-02-26 | 更新于 2019-02-27 | 分类于 初识C++ 同一类的所有对象共享同一组类方法 也就是说,对于一个类,创建多个对象时会申请各自的内存空间用于存放内部变量和成员,但是类方法(成员函数)只有一个副本,多个对象在使用类方法时实际上访问的是同一个内存块。 阅读全文 »
《C++ Prime Plus》(4) 发表于 2019-02-24 | 更新于 2019-02-26 | 分类于 初识C++ 重载解析 所谓重载解析,也即当程序中存在多个重载函数时编译器决定调用哪一个函数的分析过程。一般来说,调用重载函数的优先级为:较为具体的非模板函数>不够具体的非模板函数>较为具体的模板函数>不够具体的模板函数。 阅读全文 »
《C++ Prime Plus》(3) 发表于 2019-02-22 | 更新于 2019-02-24 | 分类于 初识C++ 逻辑操作符的运算优先级 优先级:NOT操作符>关系运算符>AND逻辑运算符>OR逻辑运算符。 阅读全文 »