腾讯面试
大佬们,这种情况是不是KPI面啊
面试官迟到15分钟才到,问的问题:
1.虚函数原理
2.C++内存分区,堆区栈区能否多线程共享
3.堆区和栈区是否有内存大小的限制,哪一个更大(不会
,最后面试官说栈区只有几M大小)
4.如果一个类占内存很大,给别人使用这个类时,怎么要求只能把内存分配到堆区?我说把变量都设置成指针?禁用构造函数,后面发现把构造函数禁用了new也用不了了?后面我查一下好像是禁用析构函数然后开启内存泄漏检查啥的。
5.从长度n的无序数组找第K大的数,我想起来之前找实习的时候也是面腾讯,也是问这个问题,我说用冒泡排序冒泡K次就行了,后面查了一下我以为最优是堆排序,然后这次我就说是堆排序,但是建堆过程忘记了怎么也说不清楚时间复杂度,后面面试官提醒我可以用快速排序的思路,时间复杂度是O(n)
6.一块内存如果还没初始化就被其他线程访问会有问题吗?
最后问了一下实习的项目面试官看了一下时间有30分钟就结束了,无手撕无反问
然后面试官就说了一句“回去等通知”就下线了
面试官迟到15分钟才到,问的问题:
1.虚函数原理
2.C++内存分区,堆区栈区能否多线程共享
3.堆区和栈区是否有内存大小的限制,哪一个更大(不会
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;
};
第五题是快速选择,和快排一样的思路,不用两边都递归,只递归一侧就可以了
相关推荐
点赞 评论 收藏
分享

点赞 评论 收藏
分享