腾讯面试

大佬们,这种情况是不是KPI面啊
面试官迟到15分钟才到,问的问题:
1.虚函数原理
2.C++内存分区,堆区栈区能否多线程共享
3.堆区和栈区是否有内存大小的限制,哪一个更大(不会,最后面试官说栈区只有几M大小)
4.如果一个类占内存很大,给别人使用这个类时,怎么要求只能把内存分配到堆区?我说把变量都设置成指针?禁用构造函数,后面发现把构造函数禁用了new也用不了了?后面我查一下好像是禁用析构函数然后开启内存泄漏检查啥的。
5.从长度n的无序数组找第K大的数,我想起来之前找实习的时候也是面腾讯,也是问这个问题,我说用冒泡排序冒泡K次就行了,后面查了一下我以为最优是堆排序,然后这次我就说是堆排序,但是建堆过程忘记了怎么也说不清楚时间复杂度,后面面试官提醒我可以用快速排序的思路,时间复杂度是O(n)
6.一块内存如果还没初始化就被其他线程访问会有问题吗?
最后问了一下实习的项目面试官看了一下时间有30分钟就结束了,无手撕无反问
然后面试官就说了一句“回去等通知”就下线了
全部评论
只能在堆区的类:构造函数私有,提供static方法来new对象。 // 只能在堆上开辟 class HeapOnly { public: static HeapOnly* CreatObj(int a,int b) { return new HeapOnly(a, b); } private: // 构造函数私有 HeapOnly() :_a(0), _b(0) {} HeapOnly(int a,int b) :_a(a), _b(b) {} // 同时拷贝构造也需要私有,禁止拷贝创建对象 HeapOnly(const HeapOnly& h) = delete; // 赋值不一定需要delete,因为赋值不能创建新对象 // HeapOnly& operator=(const HeapOnly& h) = delete; int _a; int _b; };
5 回复 分享
发布于 2024-09-08 13:02 江苏
第五题是快速选择,和快排一样的思路,不用两边都递归,只递归一侧就可以了
点赞 回复 分享
发布于 2024-09-08 15:14 四川

相关推荐

评论
3
15
分享

创作者周榜

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