C++
多态、重载、覆写
- 多态:通过基类指针调用派生类方法。
- 重载:同名函数不同参数。
- 覆写:派生类重写基类虚函数。
STL的常用容器
vector、list、deque、set、map、unordered_map等。
- vector:动态数组,支持随机访问。
- list:双向链表,支持快速插入、删除。
- deque:双端队列,支持快速插入、删除。
- set:有序集合,支持快速查找。
- map:有序键值对集合,支持快速查找。
- unordered_map:无序键值对集合,支持快速查找。
迭代器失效,如何遍历删除
- 迭代器失效:容器修改导致迭代器失效。
- 遍历删除:使用erase方法,更新迭代器。
特化与偏特化,简单了解如何使用元编程(比如使用特化和偏特化实现递归)
- 特化:为特定类型提供模板实现。
- 偏特化:为部分类型提供模板实现。
虚函数表,多继承下虚函数表指针
- 虚函数表:存储虚函数指针的表。
- 多继承:每个基类有一个虚函数表指针。
析构和构造顺序
- 构造顺序:基类先构造,派生类后构造。
- 析构顺序:派生类先析构,基类后析构。
智能指针
std::unique_ptr、std::shared_ptr、std::weak_ptr。
- unique_ptr:独占所有权,不能复制。
- shared_ptr:共享所有权,引用计数。
- weak_ptr:弱引用,不影响引用计数。
内存泄漏问题的定位
使用工具如Valgrind、AddressSanitizer定位内存泄漏。
- Valgrind:内存调试工具,检测内存泄漏。
- AddressSanitizer:内存错误检测工具,检测内存泄漏、越界访问。