5.9腾讯后端一面
八股
-STL中的数据结构
-vector如何实现?
-vector删除一部分数据,如何回收掉?
-声明vector<int> a,在内存会分配什么空间?
-函数内部声明vector<int> a,内存分配的位置?push元素时,栈指针如何变?
(以上均考察vector的模板类实现)
-map?
-unordered_map 查找过程?
-unordered_map链表存储时,每个节点存放内容?
(以上考察unordered_map 的实现)
-智能指针的结构?
-如何构造shared_ptr
-new/malloc
-free掉void*指针,如何确定空间大小?
malloc
并不会显式地存储或返回分配内存的大小给调用者。内存分配器在内部会跟踪这些信息,以便在调用 free
函数时正确释放内存。
内存分配器会在内存块的头部或尾部存储元数据。例如| 元数据 (大小) | 用户数据区 |,这种方法允许 free
函数在知道内存块指针的情况下,通过访问内存块之前的元数据来确定内存块的大小。
项目
-项目1
-tcp握手和挥手
-如何减少TIME_WAIT?
-项目2
-redis基本数据结构
算法:
-输出螺旋数组