字节朝夕光年实习2023.10.18 二面
问:右值引用是怎么实现的?
答:本质上内部是一个指针,这个指针指向了分配到的右值的区域,以进行操作。
问:右值引用有什么作用?
问:平时你什么时候会用到模板?
答:现在学c++的业务还很少用到模板,主要还是写面试题、面试题会用到,比如写shared_ptr的时候会用来写一写。(好像后面接了一个问题,但问了啥忘了)
问:你之前讲到shared_ptr,你能讲讲所有智能指针都有啥,互相的区别是什么吗?
答:正常八股。
答:基本八股
问:假如让你做一个皇室战争类型的游戏,你将分别从网络、ai、性能方面怎么设计?
答:
网络答bs机制、认为不用实时性所以状态同步
ai方面先说ue的决策树,然后讲了会强化学习
性能说ecs,gpu委托,多核处理
追问:状态同步和帧同步有什么区别,还有个啥忘了?
答:正常面经
问:如果让你实现,你倾向使用udp还是tcp传这游戏状态?
答:udp,因为皇室战争不需要保证游戏同步的实时性,丢状态了也可以在后续中同步回来。
问:你知道kcp嘛?
答:不知道(第一个不会的)
问:你平时网络编程多嘛?
答:我之前主要是做物联网项目的,基本上一直需要做网络编程。
问:讲讲select和epoll的实现
答:八股
问:讲讲select比epoll的优点
答:select比epoll速度更快(这个错了 红黑树logn的查询速度,select要轮询,没想明白),使用空间更小,更容易实现
问:静态链接库和动态链接库知道吗,在UE中用过吗?
答:还没怎么用过,不过知道概念。
问:讲讲两个的区别。
答:正常八股。
问:图形化渲染了解多少?
答:最近正在学shader,大概看完了渲染管线,正处于shader的基础语法部分。
问:shadow怎么实现(开始以为问shader的实现,答了一遍顶点处理和片元处理,答的差不多的时候面试官打断)?
答:还没看到(第二个不会的)
问:图像压缩算法你知道哪些嘛?
答:第一时间没想起来,然后答到后面的时候回来说了个最简单的分辨率减少时混合像素的方法。
问:假如在一张纸上绘制n个不相交不相切也不互相包含的圆,如何获取圆的数量、圆心、直径?
答:首先用dfs获取所有的连通分量,然后找到每一个连通分量x最小值的点 x最大的点 y最小的点 y最大的点,然后加起来除以2就是圆心,两者只差就是直径。
延伸:如果现在这张纸上的圆通过一定的旋转、平移、缩放到了另一张纸上,根据这两张纸,你如何获取每一个圆的旋转、平移、缩放的量。
答:我先以为还得判断哪个圆对应哪个圆,所以先说根据圆的直径来做一个tag,来区别左右图中哪个圆是哪个对应,然后想起还有缩放 所以肯定无法直接根据图对应,只能假设提前知道每个圆对应哪个圆。然后描述旋转矩阵和平移矩阵的组合的样子,然后说既然变换的时候是乘以这个矩阵,那想要得到这个矩阵就是让该图形的矩阵去乘以结果矩阵的逆就行了,然后拆分变换矩阵就能得到三项结果。(事实上回想答的狗屎,很想当然)
还有大概十几个问题,想起来再写
面完过两小时就给打电话说过了