不定期添加和C++面试相关内容
常见八股面试题总结,参考
Guide
文件夹
C++ 基础关键字的用法,更多参考
base_code
文件夹
- assert.cpp:断言语句,只有在Debug版本才有效
- c_polymorphism.c, c++_polymorphism.cpp:多态在c和c++中的实现
- C 中使用函数指针,
typedef void (*pf) ();
表示重定义一个函数指针的类型 - C++ 中使用虚函数,
virtual override
- C 中使用函数指针,
- colon.cpp:C++ 中冒号的使用,包括全局变量、类成员定义
- decltype.cpp:推导表达式类型,与 using/typedef 联合使用定义类型
- const_volatile.cpp: 通过
volatile
关键字修改const
常量 - static_in_class.cpp: 类中定义的静态成员变量不占类的大小,在类外分配空间;静态成员函数不能调用非静态成员,因为缺乏
this
指针 - 更多移步到 base_code/readme
C++11/14/17/20新特性,
C++2.0
文件夹
包括但不限于:
- 智能指针
- 引入了 auto 和 decltype 这两个关键字实现了类型推导
- 基于范围的 for 循环:for(auto& i : res){}
- 类和结构体的中初始化列表
- Lambda 表达式(匿名函数)
- std::forward_list(单向链表)
- 右值引用和move语义
具体参考 C++2.0/README.md
C++ 一些标准模板库的常规使用,
STL
文件夹
C++ Standard Library(标准库)包括 Standard Template Library(标准模板库),STL 分为六大类型:容器、分配器、算法、迭代器、适配器和仿函式
包括但不限于 vector, map, set, queue, queue_priority, sort 等等,具体参考 STL/README.md
C++ 实战代码和一些备忘知识点,
practice
文件夹
- unique_ptr.cpp: 独占指针
- ++i_i++.cpp:
++i
和i++
的区别,++i
可以作为左值,i++
不能作为左值(需要调用拷贝构造函数,测试之后只有一次?) - regexEx.cpp: C++正则表达式
regex
的用法 - tieTuple.cpp: C++标准库函数
tie
和tuple
的用法 - small_big_end.cpp: 大小端问题,“大端正着看,小端反着看”
- accumulate.cpp: 标准库的求和模板函数
- virtual_public.cpp: 虚拟继承解决菱形继承问题
- itemPool.cpp: 重载 new/delete 实现对象池 🔥
- producer_consumer.cpp: 互斥锁和条件变量实现生产者消费者模型 🔥
- 更多参考 practice文件夹
常见 LeetCode 算法总结,
algorithm
文件夹
📖 | 📖 | 📖 | 📖 | 📖 |
---|---|---|---|---|
1.排序 ⭐ | 2.二分查找 | 3.回溯算法 ⭐ | 4.搜索算法 ⭐ | 5.差分数组 |
6.单调栈 | 7.并查集 | 8.二叉树遍历方式 | 9.二叉树路径问题 | 10.背包问题 |
11.线段树 | 12.字典树 | 13.双指针 ⭐ | 14.最长上升子序列 | 15.数位DP |
16.其他算法 |
自定义常见数据结构
处理链表二叉树等数据结构以及输入处理技巧,参考
memo
文件夹
- ListNode.cpp: 链表
- TreeNode.cpp: 二叉树
《Linux 高性能服务器编程》阅读笔记,
Linux
文件夹
- 参考1:《Linux 高性能服务器编程》游双著
- 参考2:牛客——Linux高并发服务器开发
常见设计模式
- 单例模式:饿汉式、懒汉式
- 工厂模式:简单工厂、抽象工厂
- 观察者模式
流媒体相关知识点,常见协议说明,包括 RTMP、RTSP、HLS、DASH 等
参考:Streaming.md
不同公司的面经,
review
文件夹
📖 | 📖 | 📖 | 📖 | 📖 |
---|---|---|---|---|
百度 | 阿里 | 腾讯 | 字节跳动 | 快手 |
美团 | 京东 | 蚂蚁集团 | 小红书 | 游戏厂 |
国企银行 | 国企子公司 | 金融科技 | 武汉企业 | 其他面经 |
- CMakeLists.txt:方便 CLion 同时编译多个文件的配置文件
- C_C++.md:C/C++八股文,大部分摘自拓跋阿秀,外加自己勘误
- CPPhelper.md:一些关于 CPP 的零碎知识,例如 g++, CMakeLists.txt, makefile 等