- 类型转换
- 指针和引用
- 函数指针
- 左右引用
- 结构体内存计算
- 关键字
const
、constexptr
、decltype
、auto
、final
、override
和explicit
- 顺序容器
- 数组底层
- 栈、(优先队列)堆和队列
- 关联容器
- 分类
- 基本操作
- 底层
- 散列表
- 红黑树
- 冲突解决
- 模板算法
- 构造函数和析构函数
- 构造函数不能写成虚函数
- 对有继承的情况,析构函数一般写为虚函数
this
指针- 重载
- 访问修饰符
- 友类
- 静态成员和成员函数
- 继承修饰符
- 虚函数实现多态(父类指针指向子类对象)
- 虚表
- 纯虚函数
- 重写
- new和malloc
- 智能指针
- shared_ptr & unique_ptr
- shared_ptr自实现
- RAII思想
- shared_ptr & unique_ptr
- allocator类
- 拷贝构造函数 & 拷贝构造运算符
- 移动构造函数 & 移动构造运算符
- 右值引用
- 析构函数
- 模板函数
- 模板类
- 萃取技术
- 线程与进程
- 同步原语
- 互斥量
- 信号量
- 管程
- 条件变量
- C++ 标准库
- thread
- atomic
- mutex
- future
- 多线程最佳实践
- 计数器
- 线程池
智能指针 & 内存管理:
shared_ptr
和unique_ptr
- 内存池
lambda表达式:
[capture list](parameter list) +> return type { function body }
- 子集
- 组合
- 排序
- 搜索(一般会剪枝,比如leetcode 79题非常经典)
- 模板 + 变化
- 遍历
- 深度优先 DFS
- 前序
- 中序
- 后序
- 广度优先 BFS
- 层序遍历
- 深度优先 DFS
- 递归
- 思路:排序+遍历
- 分类
- 子序列
- 区间问题
- 股票问题
- 快速排序 quick sort
- 合并排序 merge sort
- 堆排序 heap sort
- 其他
- 高频 & 初级
- 栈
- 堆(优先队列)
- 队列
- 低频 & 高级
- 字典树
- 对顶堆
- 并查集
- 遍历
- 深度优先 DFS
- 广度优先 BFS
- 拓扑排序
- 最短路径——迪杰斯特拉 Dijkstra
- 进程:进程与线程、进程的状态、进程调度算法、进程通信和一些特殊进程(守护、孤儿、僵尸)
- 同步与互斥:多线程、死锁、POSIX的pthread
- 内存管理:虚拟内存、分段和分页
- 应用层:
- HTTP:HTTP方法、GET和POST的区别、HTTP状态码、cookie和session、HTTP1.x/2.0
- HTTPS:加密方法
- 传输层:
- TCP/UDP:区别、三次握手、四次挥手、优化(滑动窗口等等)
- SQL语法
- 索引
- 事务及事务隔离级别
- MVCC
- 数据库的锁
- 慢查询优化
- Consistency
- Availability
- Partition Tolerance
- 弱一致性
- 最终一致性
- 强一致性
- 工作到备用切换
- 双工作切换
- Raft
- Paxos
- SQL
- NoSQL
- 模式
- cache aside
- write through
- write back
- flush
- 问题
- 缓存击穿
- 缓存穿透
- 缓存雪崩
- 消息队列
- 任务队列
- TCP
- UDP
- RPC
- 加密与哈希
- 认证与授权
- 限流 & 降级 & 熔断
- 跨站脚本攻击XSS & 跨站请求伪造CSRF
综合:
Java:
C++:
JavaScript:
刷题: