Skip to content

EricPengShuai/Interview

Repository files navigation

Interview | 📚 by ericps

不定期添加和C++面试相关内容

cpp_logo.png

面试题总结

常见八股面试题总结,参考 Guide 文件夹

  1. Guide_1.md
  2. Guide_2.md
  3. Guide_3.md
  4. Guide_4.md

C++ 基础

C++ 基础关键字的用法,更多参考base_code 文件夹

  1. assert.cpp:断言语句,只有在Debug版本才有效
  2. c_polymorphism.c, c++_polymorphism.cpp:多态在c和c++中的实现
    • C 中使用函数指针,typedef void (*pf) (); 表示重定义一个函数指针的类型
    • C++ 中使用虚函数,virtual override
  3. colon.cpp:C++ 中冒号的使用,包括全局变量、类成员定义
  4. decltype.cpp:推导表达式类型,与 using/typedef 联合使用定义类型
  5. const_volatile.cpp: 通过volatile关键字修改const常量
  6. static_in_class.cpp: 类中定义的静态成员变量不占类的大小,在类外分配空间;静态成员函数不能调用非静态成员,因为缺乏this指针
  7. 更多移步到 base_code/readme

C++ 新特性

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

常见 STL 库

C++ 一些标准模板库的常规使用,STL 文件夹

C++ Standard Library(标准库)包括 Standard Template Library(标准模板库),STL 分为六大类型:容器、分配器、算法、迭代器、适配器和仿函式

包括但不限于 vector, map, set, queue, queue_priority, sort 等等,具体参考 STL/README.md

实践代码

C++ 实战代码和一些备忘知识点,practice 文件夹

  1. unique_ptr.cpp: 独占指针
  2. ++i_i++.cpp: ++ii++区别++i可以作为左值,i++不能作为左值(需要调用拷贝构造函数,测试之后只有一次?)
  3. regexEx.cpp: C++正则表达式regex的用法
  4. tieTuple.cpp: C++标准库函数tietuple的用法
  5. small_big_end.cpp: 大小端问题,“大端正着看,小端反着看”
  6. accumulate.cpp: 标准库的求和模板函数
  7. virtual_public.cpp: 虚拟继承解决菱形继承问题
  8. itemPool.cpp: 重载 new/delete 实现对象池 🔥
  9. producer_consumer.cpp: 互斥锁和条件变量实现生产者消费者模型 🔥
  10. 更多参考 practice文件夹

常见算法

常见 LeetCode 算法总结,algorithm 文件夹

📖 📖 📖 📖 📖
1.排序 2.二分查找 3.回溯算法 4.搜索算法 5.差分数组
6.单调栈 7.并查集 8.二叉树遍历方式 9.二叉树路径问题 10.背包问题
11.线段树 12.字典树 13.双指针 14.最长上升子序列 15.数位DP
16.其他算法

自定义常见数据结构

处理链表二叉树等数据结构以及输入处理技巧,参考 memo 文件夹

  1. ListNode.cpp: 链表
  2. TreeNode.cpp: 二叉树

Linux 相关

《Linux 高性能服务器编程》阅读笔记,Linux 文件夹

详见 Linux-readme.md

数据库

设计模式

常见设计模式

  • 单例模式:饿汉式、懒汉式
  • 工厂模式:简单工厂、抽象工厂
  • 观察者模式

参考:DesignPattern.md

流媒体相关

流媒体相关知识点,常见协议说明,包括 RTMP、RTSP、HLS、DASH 等

参考:Streaming.md

面经汇总

不同公司的面经,review 文件夹

📖 📖 📖 📖 📖
百度 阿里 腾讯 字节跳动 快手
美团 京东 蚂蚁集团 小红书 游戏厂
国企银行 国企子公司 金融科技 武汉企业 其他面经

其他

  • CMakeLists.txt:方便 CLion 同时编译多个文件的配置文件
  • C_C++.md:C/C++八股文,大部分摘自拓跋阿秀,外加自己勘误
  • CPPhelper.md:一些关于 CPP 的零碎知识,例如 g++, CMakeLists.txt, makefile 等