金山C++面试

一面:纯语音面试,摄像头都没让开
自我介绍
std::sort底层
shared_ptr和unique_ptr的应用场景
epoll,poll,select
new和malloc的区别
各种排序算法的应用场景
数据结构的设计能力怎么样?
迭代器失效的场景
常见的STL容器
vector扩容会发生什么
VS2022用过哪些功能(他和我讲了一下高级的Debug功能,鼠鼠没用过,只会断点调试看变量
说到Reactor,你了解Proactor吗?
问项目

面试官挺好的,一直在引导我,还给我解释。感觉答得不行
全部评论
请问在哪里投递呀
1 回复 分享
发布于 04-30 09:13 江苏
佬有后续了么
点赞 回复 分享
发布于 05-13 11:28 河南
是不是官网上进程没了就是结束了
点赞 回复 分享
发布于 04-29 00:49 浙江
不开摄像头不怕有人用手机搜答案吗
点赞 回复 分享
发布于 04-28 22:10 四川
base武汉么
点赞 回复 分享
发布于 04-25 18:07 天津

相关推荐

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道真题和解析
点赞 评论 收藏
分享
评论
5
45
分享

创作者周榜

更多
牛客网
牛客企业服务