17、智能指针实现原理(),unique_ptr和weak_ptr都说一下
1 2

相关推荐

03-30 20:12
已编辑
东南大学 C++
一、自我介绍 / 基本情况 / 求职意向1.你先做一下简单的自我介绍。2.你在字节实习了多久?3.你怎么进去的?是自己找的,还是同学内推之类的?4.你在字节主要做了什么?5.第一个点是缓存特征优化,这块做了多久?6.这是你一个人做的,还是有人带着你做的?7.代码大部分都是你写的吗?8.你平时主要用什么开发语言?二、C++ 智能指针 / 内存管理10.你们用的什么智能指针?是哪一种?11.你说的这个智能指针,实现原理是什么?12.shared_ptr 用过吗?13.shared_ptr 的实现原理是什么?14.它和你刚刚说的unique_ptr指针有什么区别?15.shared_ptr 是线程安全的吗?16.多线程去用它或者改它呢?17.你怎么证明没有内存泄漏?三、concurrent hashmap / 容器 / 并发结构18.你简历里写的 concurrent hashmap,是 STL 里面的吗?19.它怎么做的?20.它的锁是什么?21.这个 hashmap 是整张表一把锁吗?四、实习项目:缓存优化 / 指标 / SQL 优化22.你这里写 Android 优化 4.8%,这个是什么情况下的?23.你们这个模块本身优化了多少?24.这个优化结果你们取的是平均值,还是 P99?25.你们是怎么测的?测了多少台设备?26.你第二个点写的是 SQL 重复优化,这个我没太看明白。你讲一下。27.你们这个不是用缓存来优化,而是在实现方式上优化,是吗?28.你们缓存的话,怎么控制过期时间?29.如果两次查询一模一样,命中了缓存,就不再到底层查了,是吗?五、右值引用 / 移动语义 / 构造函数class Stringpublic:String(const String &p) {}String(String &&p){}private:char *s;int size;}32.你对右值引用了解吗?33.右值引用的原理是什么?34.它是在编译期还是运行时生效?35.那你把拷贝构造和移动构造写一下吧。36.String(const String &p) 应该怎么写?37.String(String &&p) 应该怎么写?38.拷贝构造和移动构造的区别是什么?39.为什么移动构造里要把源对象置空?40.这里如果只做浅拷贝,会有什么问题?41.这个类需不需要析构函数?为什么?42.如果有析构函数,这个类还应不应该补赋值运算符重载?六、编程题:三个有序数组合并43.有三个已经排好序的数组,现在要把它们合成一个有序数组。44.除了结果本身,额外空间复杂度要求 O(1),你怎么做?45.你这个方案(三指针)的时间复杂度是多少?46.如果三个数组长度分别是 m、n、k,时间复杂度怎么表示?47.如果三个数组长度都记作 N,那复杂度是多少?48.如果我把约束去掉,不限制你额外空间,要求时间尽量快,你会怎么做?49.你为什么会想到优先队列?50.重新放到堆里为什么不一定更快?51.如果我再告诉你,这些 int 数值的取值范围是固定的,你有没有更快一点的方法?52.图里写的 mergeAll(const vector<vector<int>>& inputs) 这种两两合并思路,整体复杂度是多少?七、估算题60.假设上海每年出生人口大概 16 万,你估一下上海大概有多少所小学。
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务