不定期添加和C++面试相关内容
不同公司的面试总结
-
ByteDanceGuide.md:字节面试指南
-
KuaishouGuide.md:快手面试指南
-
Baidu.md:百度面试指南
C++一些标准库的常规使用
包括但不限于 vector, map, set, queue, queue_priority, sort 等等,具体参考 STL/README.md
常见的LeetCode算法总结
C++基础关键字的用法,C++_base.md 中第二部分有相关描述
- 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 联合使用定义类型
- 更多参考 base_code文件夹 ...
C++11/14/17/20新特性
包括但不限于:
- 智能指针
- 引入了 auto 和 decltype 这两个关键字实现了类型推导
- 基于范围的 for 循环:for(auto& i : res){}
- 类和结构体的中初始化列表
- Lambda 表达式(匿名函数)
- std::forward_list(单向链表)
- 右值引用和move语义
具体参考 c++2.0/README.md
处理链表二叉树等数据结构以及输入处理技巧
- listnode.cpp: 链表
- treenode.cpp: 二叉树
C++实战代码和一些备忘知识点
- unique_ptr.cpp:智能指针
- const_volatile.cpp:通过
volatile
关键字修改const
常量 - static_in_class.cpp:类中定义的静态成员变量不占类的大小,在类外分配空间;静态成员函数不能调用非静态成员,因为缺乏
this
指针 - ++i_i++.cpp:
++i
和i++
的区别,++i
可以作为左值,i++
不能作为左值(需要调用拷贝构造函数,测试之后只有一次?) - regexEx.cpp:C++正则表达式
regex
的用法 - tieTuple.cpp:C++标准库函数
tie
和tuple
的用法 - small_big_end.cpp: 大小端问题,“大端正着看,小端反着看”
- accumulate.cpp:标准库的求和模板函数
- 更多参考 practice文件夹 ...
流媒体相关知识点,常见协议说明,包括 RTMP、RTSP、HLS、DASH 等
参考:streaming.md
不同公司的面经
- CMakeLists.txt:方便CLion同时编译多个文件的配置文件
- C_C++.md:C/C++八股文,摘自拓跋阿秀
- CPPhelper.md:一些关于 CPP 的零碎知识,例如 g++, CMakeLists.txt, makefile 等
- C++_base.md:来自北邮《C++面向对象程序设计实践》课程知识点和基础关键字代码