9.26

  1. 虚函数是在类中的函数头前加上虚virtual关键词的函数,
    1. 是为了加入虚函数表中
    2. 使子类可以通过子类指针调用与父类虚函数同名同类型的函数

纯虚函数是父类函数中内容无意义时,不需要显化式,直接将虚函数等于0

  1. 因为在父子类中都存在创建堆区空间,但后续delete无法将空间全部回收,所以在基类中使用虚析构函数来防止空间泄漏
  2. Const修饰过的变量初始化不能直接修改,可以通过程序员手动修改,或者通过指针间接修改,state修饰过的变量初始化可以直接修改或者手动初始化,因为state修饰过的成员已经开辟过空间且在程序结束前都会保留,但使用前需要声明。
  3. 指针和引用的区别
    1. 指针指向的是变量的地址,而引用是变量本身;
    2. 符号不同,指针使用的是*号,引用使用的是&号;
    3. 指针的大小根据操作系统的不同,大小不一样,在64位操作系统中是8字节,引用的大小为引用该变量的数据类型大小
    4. 有多级指针,没有多级引用。
    5. 指针占用内存空间,引用不占用内存空间
    6. 引用时必须初始化,指针可以不在新建时初始化
    7. 指针可以指向空,引用不行
    8. 引用的变量不能重新引用,指针可以重新指向新地址
  4. new和malloc的区别
    1. New可以连续申请堆区空间,malloc只能一个一个申请
    2. New申请空间时不需要输入大小,malloc需要输入申请者的占用大小
    3. New需要申请的长度,malloc不需要
    4. New可以直接在初始化的时候申请空间,malloc不行
    5. New只能申请整块空间(空间必须连续),malloc可以申请分散的空间

  1. 因为在父子类中都存在创建堆区空间,但后续delete无法将父子空间中的堆区空间全部回收,为了避免空间泄漏所以在基类中使用虚析构函数
  2. 栈区、堆区、全局/静态变量存储区、常量区、代码区
  3. 顺序表增O(n)删O(n)改O(1)查(排序后的时间复杂度)O(1)

空间复杂度O(n)

   链表增O(1)删O(1)改O(n)查O(n)   

空间复杂度O(n)

   栈  访问O(n)  查O(n)  推入O(1)   弹出O(1)

空间复杂度O(n)

   队列   访问O(n)  查O(n)  入队O(1)   出队O(1)

空间复杂度O(n)

  二叉树 增删改查O(h),h为树高

空间复杂度O(n)

平衡树:增O(log n)删O(log n)改O(log n)查O(log n)最坏情况都是O(n)

空间复杂度O(n)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值