八股文:
一个空类:默认构造函数 拷贝构造函数 赋值运算符 析构函数
构造函数有几类:默认构造函数、 初始化构造函数、拷贝构造函数、移动构造函数
移动构造函数。用于将其他类型的变量,隐式转换为本类对象
什么地方会实践 深拷贝 : :深拷贝的拷贝构造函数和赋值运算符
为什么基类必须虚析构 ? 虚函数 用于 将基类和派生类连接,实现 多态 ,析构函数也需要 串联出来 。
析构顺序 派生类的构造函数 --> 成员类 析构函数 --> 父类构造函数
类内成员变量: 引用——初始化必须在构造函数 初始化列表中进行
const 本身就是 只读的含义 ,和成员函数结合起来,,能够牵涉的 两个部分 就是 ( const )成员变量 ( const )对象
刷题: 两道题
链表的定义:要考虑到 构造实例化的情况
struct ListNode{
int val;
ListNode* next;
ListNode(int x) : val(x), next(NULL) {} // 节点的构造函数
}
移除链表中的元素;
成功实现的代码中使用了,俩个链表指针,有些浪费,并且没有删除 已经移除掉的 元素
使用一个 ListNode* cur 和一个 ListNode temp 用来删除 移除掉的元素
链表中 虽然 插入/删除的时间复杂度 是 O(1),但是 找个这个对应该删除/插入元素的位置,还是需要遍历。
while( index--) 我这边思维上有个误区
就是 判断是否进入while 循环是 使用的 i
但是进入while 循环体内后,使用的 i 是 已经 减 1 的结果
index-- 执行的次数 就是 index 的大小
--index 执行的次数 是 index -1