Table of contents Introduction C & C++ C语言 指针 & 数组 柔性数组 函数指针 & 回调函数 C标准库之stdio C标准库之string C标准库之errno C标准库之stdarg C标准库之regex C++基础语法 自增(++) & 自减(--) c语言到c++ 可变模板参数 强制类型转换 C/C++类型转换的本质 指针 & 引用 const的用法 static的用法 重要的关键字(一) 重要的关键字(二) 内存申请和释放 内联函数 函数 & 运算符重载 面向对象之封装 构造函数 & 析构函数 面向对象之继承 面向对象之多态 泛型编程 异常 再谈函数指针 C++并发编程 C++的锁 并发与多线程 C++高级特性 函数对象 移动语义 & 完美转发 lambda表达式 RTTI技术 RAII技术 智能指针 模板的特化 C++静态库和动态库 内存溢出和内存泄漏 STL基础 String array/vector/list deque/priority_queue set/map unordered_set/unordered_map algorithm_1 functional allocator C++标准库 IO Tuple regex bitset numeric STL深入源码 vector内部实现 deque内部实现 sort函数实现 第三方库 JsonCpp ProtoBuf 数据结构 线性表 字符串 栈和队列 二叉树 平衡二叉树 平衡多路搜索树 树结构的延申 图 二进制 散列表 算法基础 排序算法 查找算法 数学问题 并查集 递归算法 附加——主定理 Catalan数 算法设计思想 滑动窗口思想 BFS/DFS 二分法 回溯法 贪心算法 分治法 动态规划 分支限界算法 有限状态机(FSM) LeetCode系列 死磕二叉树 股票买卖问题 打家劫舍问题 跳跃游戏问题 括号匹配问题 石子游戏问题 子序列问题 数组 & 矩阵 排列 & 组合 经典算法问题 几何问题 区间问题 背包问题 石子堆问题 表达式求值 面试题 数据结构和算法基础 程序设计题 实现双线程交替打印 C++实现读写锁 实现阻塞队列 实现环形队列 实现线程池 实现智能指针 实现string类 实现高性能local cache 实现内存池 生产者-消费者模型 设计定时器 经典的算法题 C++面试题总结 面试算法题总结