光锥元一面-软件

自我介绍
疯狂问前端项目的细节
接口调用是怎么调用的
揪着底层问弹幕功能和登录注册
我和他们吐槽说我不是来面前端的
他们说只是想了解一下本科都做了些什么
问计网:登录注册计网发生了什么
问C++的特点
内存管理如何管理
除了new和delete还有哪些方法
给了一个场景:
实现一个数据结构可以动态申请和删除大小?
用过哪些数据结构
map和set实现的底层原理如何实现
为什么用红黑树等等
unordered_set的底层原理
堆排序实现细节和时间复杂度分析
给了一道题:如何判断一棵树是对称二叉树
ps:面试体验不是很好,全程板着脸。问的问题也很多不会,我应该适合躺平。
#光锥元##光锥元科技##光锥元一面#
全部评论
兄弟有后续吗,面试的时候有没有自我介绍
点赞 回复 分享
发布于 2024-04-11 20:54 广东
有后续吗?
点赞 回复 分享
发布于 2024-04-11 18:44 福建

相关推荐

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

创作者周榜

更多
牛客网
牛客企业服务