
面试-零声-C++后端面试攻略(Leetcode剑指Offer)
来自 网络整理·免费领取学习资源
6,745 领取 · 8,449 收藏更新于 2026年9月20日
这份资料来自网络整理2026年的付费VIP课,内容以视频为主,对应《面试-零声-C++后端面试攻略(Leetcode剑指Offer)》。官网需要单独购买,有集上可以免费领取。
课程目录
- 1. cc++语言相关,常见题型
- 1.10c++ 什么是深拷贝,什么是浅拷贝
- 1.1const关键字的作用
- 1.1static关键字的作用
- 1.2引用与指针作用以及区别
- 1.3如何避免野指针
- 1.4malloc free和new delete的区别
- 1.5extern 关键字作用
- 1.6简述 strcpy、sprintf 与 memcpy 的区别?
- 1.7cc++ 中强制类型转换使用场景?
- 1.8c++ 什么时候生成默认构造函数
- 1.9c++ 什么时候生成默认拷贝构造函数
- 2. cc++标准库,常见题型【一、二】
- 2.1vector 底层实现原理
- 2.2vector 内存增长机制
- 2.3vector中reserve和resize的区别
- 2.4vector 的元素类型为什么不能是引用
- 2.5list 底层实现原理
- 3.1deque 底层实现原理
- 3.2什么时候使用vector list deque
- 3.3priority_queue 的底层实现原理
- 3.4multiset 的底层实现原理
- 3.5unordered_map 的底层实现原理
- 3.6 迭代器底层实现原理?及其有哪些种类?
- 3.7迭代器失效?连续和非连续存储容器的失效?
- 3.8 STL 容器线程安全性
- 3. c++面对对象,常见题型【一、二】
- 4.1 面对对象的三大特征
- 4.2 简述多态实现原理
- 4.3 怎么解决菱形继承
- 4.4 关键字override_final的作用
- 4.5 c++ 类型推导用法
- 4.6 function_lambda_bind之间的关系
- 5.1 继承下的构造函数和析构函数执行顺序
- 5.2 虚函数表和虚函数表指针的创建时机
- 5.3 虚析构函数的作用
- 5.4 智能指针种类以及使用场景
- 5.5 c++11用过哪些特性?
- 5.6 动态库与静态库的区别?
- 5.7 左值引用与右值引用的区别?右值引用的意义?
- 4.设计模式,常见题型【一、二】
- 6.1面对对象中有哪些设计原则
- 6.2简述开闭原则,哪些原则与它相关,分别是什么关系?
- 6.3什么是里氏替换原则
- 6.4什么是迪米特原则
- 6.5什么是依赖倒置原则
- 6.6单例模式多线程?
- 6.7什么是工厂模式?什么是抽象工厂?应用场景是什么?
- 7.1 什么是策略模式?应用场景是什么?
- 7.1 什么是代理模式?应用场景是什么?
- 7.2什么是装饰器模式?应用场景是什么?
- 7.3什么是组合模式,应用场景是什么?
- 7.4什么是责任链模式?应用场景是什么?
- 7.5什么是模板方法?应用场景是什么?
- 7.7 什么是观察者模式?应用场景是什么?
- 5. 构与算法,常见题型【一、二、三、四】
- 08_01-用两个栈实现队列
- 08_02-包含min函数的栈
- 08_03-队列的最大值
- 08_04-用一个栈实现另一个栈的排序
- 08_05-仅用递归和栈操作逆序一个栈
- 08_06-链表中倒数第 k 个节点
- 08_07-链表中环的入口节点
- 08_08-反转链表
- 08_09-从尾到头打印链表
- 08_10-两个链表的第一个公共节点
- 09_01-第一个只出现一次的字符
- 09_02-最长不含重复字符的子字符串
- 09_03-字符串的排列
- 09_04-反转字符串
- 09_05-把数字翻译成字符串
- 09_06-重建二叉树
- 09_07-二叉树的下一个节点
- 09_08-树的子结构
- 09_09-二叉树展开为链表
- 10_01-对称的二叉树
- 10_02-从上到下打印二叉树
- 10_03-序列化二叉树
- 10_04-二叉树节点间的最大距离
- 10_05-二叉树中和为某一值的路径
- 10_06-二叉树的最近公共祖先
- 10_07-剪绳子
- 10_08-二进制中1的个数
- 11_01-矩阵的最小路径和
- 11_02-换钱的方法数
- 11_03-换钱的最小货币数
- 11_04-最长公共子序列问题
- 11_05-最长公共子串问题
- 11_06-数组中的最长连续序列
- 11_07-最长递增子序列
- 11_08-子矩阵的最大累加和问题
- 6. 操作系统,进程线程,常见题型【一、二】
- 12_01-进程和线程的区别?
- 12_02-操作系统中进程与线程的切换过程
- 12_03-请描述系统调用整个流程
- 12_04-后台进程有什么特点
- 12_05-进程间通信有哪几种方式
- 12_06-操作系统中进程调度策略有哪几种
- 12_07-线程同步的方式
- 12_08-CAS是怎样的一种同步机制
- 12_09-CPU 是怎么执行指令的
- 13_01-用户态和内核态的区别
- 13_02-内存管理有哪几种方式
- 13_03-malloc 是如何分配内存的
- 13_04-页面置换算法有哪些
- 13_05-谈谈 cpu cache 一致性工作原理
- 13_06-写文件时进程宕机,数据会丢失吗
- 13_07-磁盘调度算法有哪些
- 7.数据库MySQL,常见题型【一、二、三】
- 14.1数据库的三大范式
- 14_02-MySQL cpu 飙升,该怎么处理
- 14_03-如何定位以及优化 SQL 语句的性能问题
- 14_04-什么是视图_为什么使用视图
- 14_05-SQL语句在MySQL是如何执行的
- 14_06-索引在什么情况下会失效
- 14_07-MySQL 索引的目的和代价
- 14_08-主键索引和唯一索引的区别
- 14_09-聚集索引和辅助索引的区别
- 15_01-什么是覆盖索引_原理是什么
- 15_02-undolog和redolog有什么作用
- 15_03-什么是最左匹配规则,原理是什么
- 15_04-什么是索引下推,原理是什么
- 15_05-InnoDB 与 MyISAM 的区别
- 15_06-索引为什么要用B+树而不是二叉树或B树
- 16_01-数据库事务的四个特性以及含义
- 16_02-脏读、幻读、不可重复读出现的原因原理
- 16_03-不可重复读与幻读的区别
- 16_04-SQL注入原理,如何避免SQL注入
- 16_05-MySQL死锁问题产生的原因以及如何解决
- 16_06-MVCC 底层原理
- 8. Redis,常见题型【一、二】
- 17.1什么是 redis?redis 的应用场景有哪些?
- 17.2redis 的对象类型以及底层实现的数据结构?
- 17.3相同数量的数据hash与zset 存储占用情况?
- 17.4基于 redis 实现限流功能,有哪几种方式?
- 17.5redis为什么是单线程?为什么这么快?
- 17.6redis 怎么实现分布式锁?有哪些缺陷?
- 18_01-redis怎么做高可用
- 18_02-redis不同持久化机制都有什么优缺点
- 18_03-什么是缓存雪崩、缓存穿透、缓存击穿
- 18_04-Redis淘汰策略有哪些
- 18_05-分析redis中的事务
- 9.网络编程,常见题型【一、二】
- 19_01-简述 Reactor 网络编程模型
- 19_02-Reactor和Proactor的区别
- 19_03-连接断开有几种判定方式
- 19_04-接收客户端连接有几种方式
- 19_05-为什么用户态需要设置读写缓冲区
- 20_01-水平触发和边缘触发的区别
- 20_02-CLOSE_WAIT和TIME_WAIT是什么
- 20_03-TCP三次握手过程_为啥不可两次
- 20_04-TCP 四次挥手的过程
- 20_05-什么是连接半打开,半关闭状态
- 20_06-UDP和TCP的区别
- 20_07-描述输入网址到网页显示整个流程
- 20_08-linux系统如何收发网络包
- 20_09-TCP是如何保证可靠性的
- 20_10-什么是MTU、MSS以及为什么要有MSS
- c++ 后端面试题课程介绍
- 10. 论,常见题型
- 21_01-什么是 CAP 理论
- 21_02-什么是 Base 理论
- 21_03-什么是2PC
- 21_04-什么是Raft协议,解决了什么问题
- 11.kafka,常见题型
- 22_01-kafka是什么?解决了什么问题?
- 22_02-zk对于kafka的作用是什么
- 22_03-kafka如何判断一个节点是否还活着
- 22_04-简述kafka的ack三种机制
- 22_05-kafka如何控制消费位置
- 22_06-在分布式场景下如何保证消息的顺序消费
- 22_07-kafka的高可用机制是什么
- 22_08-kafka如何减少数据丢失
- 22_09-kafka如何确保不消费重复数据
- 22_10-kafka为什么性能这么高
- 12.gRPC,常见题型
- 23_01-gRPC 服务端启动流程
- 23_02-gRPC 服务类型有哪些
- 23_03-keepalive 是针对连接设置
- 23_04-gRPC多路复用指的是什么
- 23_05-gRPC 如何自定义 resolver
- 23_06-gRPC如何自定义 balancer
- 23_07-如何实现 gRPC 全链路追踪
- 23_08-客户端连接状态有哪些
- 23_09-客户端如何获取服务端的服务函数列表
- 23_10-如何为每个stream进行限流
- 13.etcd,常见题型
- 24_01-etcd 中一个任期是什么意思
- 24_02-etcd中raft状态机是怎么样切换的
- 24_03-如何防止候选者在遗漏数据的情况下成为总统
- 24_04-etcd某个节点宕机后会怎么做
- 24_05-为什么raft算法不考虑拜占庭将军问题
- 24_06-etcd 如何选举出leader节点
- 24_07-etcd如何保证数据一致性
- 14.dockerk8s,常见题型
- 25_01-什么是 docker 镜像
- 25_02-什么是 docker 容器
- 25_03-docker 容器有几种状态
- 25_04-copy和add命令的区别
- 25_05-容器与主机之间的数据拷贝命令
- 25_06-dockerfile的onbuild指令
- 25_07-如何在生产中监控 docker
- 25_08-构建docker镜像应该遵循哪些原则
- 25_09-容器退出后数据会丢失么
- 15.数据库集群,常见题型
- 26_01-MySQL主从复制原理
- 26_02-MySQL分库分表
- 26_03-简述redis高可用的方案
- 26_04-简述redis-cluster集群的原理
- 16.设计方案,常见题型
- 27_01-2G内存在20亿个整数中找出现次数最多的数
- 27_02-100亿个URL中重复词汇的TOPK问题
- 27_03-40亿个非负整数中找到未出现的数
- 27_04-40亿个非负整数中算中位数和找出现两次的数
- 27_05-岛问题
- 27_06-Redis和MySQL缓存一致性
- 27_07-现场手撕定时器
包含内容
- · 1. cc++语言相关,常见题型
- · 1.10c++ 什么是深拷贝,什么是浅拷贝
- · 1.1const关键字的作用
- · 1.1static关键字的作用
- · 1.2引用与指针作用以及区别
- · 1.3如何避免野指针
- · 1.4malloc free和new delete的区别
- · 1.5extern 关键字作用
贡献者
Kevin
青铜