快手面试

一句话总结,一塌糊涂。

我在面试前在牛客看了很多帖子,我以为他会怎么说呢?重点去提问八股的问题。结果我背了很久的八卦,然后他上来就揪着我的项目问,而且又问了我一个场景题,反正就基本上回答不了,回答不出来。后面那个代码题。是hot100里的,只是我平时没怎么关注那道题。就是lru的实现。我等到反问的时候,我知道他这是什么部门,然后我我才意识到把他问那些都是有原因的,我感觉我自己觉得准备的是。够努力,但努力方向不对

全部评论
项目不准备不太行啊,项目是最重点的,八股随便背背基本没啥问题
5 回复 分享
发布于 05-16 09:18 河北
哪个部门啊佬?
1 回复 分享
发布于 05-15 17:52 北京

相关推荐

5/8,18min,今天大早上给我发感谢信了,我还很奇怪我大部分都答得上来。大部分问题都是常见八股,智能指针、虚函数、大端小端、内存布局、map、inline没什么好讲的,主要是两个问题问到我了。1、如何获取虚函数指针vptr隐隐约约记得之前看过,但是忘了答不上来,大概就是:vptr是对象内存的第一个字段1)void** vptr = *(void***)ptr;//直接强制转换2)使用unionunion U {Base1* Ptr;void** Vptr;};一般情况到此为止了,但我气不过,仔细查了资料,发现这个问题本质上十分抽象。首先在ISO/IEC 14882 (C++标准)中,只描述了虚函数的行为,没有指定实现方式,之前了解到的vtable、对象内存布局,都是编译器开自己实现的,比如Itanium C++ ABI(GCC)文档:https://itanium-cxx-abi.github.io/cxx-abi/abi.html#vtable中就规定了使用vtable,MSVC貌似没直接说(https://learn.microsoft.com/en-us/cpp/cpp/virtual-functions?view=msvc-170),但调试发现跟GCC差不多,前面获取vptr的手段就是这么来的。问题就在这里了,获取vptr的方法是依赖于编译器实现细节而不是标准接口的,是一种非常危险的未定义行为,哪天编译器给你改了实现那程序通通都得爆炸😅(参考GCC 5.x ABI Break)2、关于shared_ptr基本原理:std::shared_ptr<T>内部指向一个控制块,包含引用计数器、对象的指针(T*)、析构器计数器的类型:通常是原子类型(atomic)多个 shared_ptr<T>,只要是从同一个源shared_ptr拷贝/赋值构造出来的,它们内部就指向同一份控制块。这个问题没什么好说的,单纯不会,但我怀疑这么问下去我是不是得把标准库源码都得看一遍😀。
金山WPS一面39人在聊 查看2道真题和解析
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
4
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务