完美一面

岗位是C++客户端,一面好久没消息了,估计是凉了。。。

总共半个小时,但是强度很高,问了30多个问题,问的基本是C++。

1.知道堆排序吗,具体是怎么实现的

讲了讲堆的性质、问道具体实现(如何建树、插入)没说清楚。

建堆:首先堆可以是一个数组,但是有着完全二叉树的性质,当节点下标为index的时候,左子树下标为index * 2 + 1,右子树下标为index * 2 + 2,这样我们可以从第一个非叶子节点(下标为 len / 2 - 1)开始调整数组结构构成大顶堆,首先将这个节点与其叶子节点进行比较,如果叶子节点比它大,找出最大那个节点与它交换,之后对该位置进行同样的调整以防一次调整无法满足堆。然后从len / 2 – 1这个位置一直向后做同样的操作。

排序:依次将堆顶与最后一个节点交换,最后一个节点不包括交换过的节点,然后重新对堆顶位置调整堆,直到所有节点都交换完成,排序完成。

2.如何不改变链表结构逆序遍历链表

通过使用stack,将每次遍历的结果保存到栈中,之后依次取栈顶输出,并出栈

追问:如果不开辟新的内存空间呢?

没想出来,后面面试官提示说递归

依次递归listNode->next,之后进行输出返回(可我寻思着这个递归栈也要内存空间啊)

3.链表过长会出现什么问题?

查找效率降低

可能会出现栈溢出、难以维护等问题

4.讲一讲面向对象编程

封装、继承、多态

5.讲一讲多态

编译时多态、运行时多态

6.讲一讲虚函数机制

虚函数表、虚函数指针

7.类里面的默认函数有什么

构造函数、析构函数

还有拷贝构造函数和赋值运算符“=”

8.如何阻止编译器自动创建默认构造函数

自己写一个构造函数

追问:还有没有别的方法?

没答上来,C++11新特性关键字delete实现, MyClass() = delete;

9.子类构造函数调用的顺序

先父类后子类,析构反过来

10.析构是不是虚函数

没答上来

面试官提示:继承后释放内存会不会出现什么问题?

可能会继承相同的变量导致重复释放内存导致程序崩溃。

可以是虚函数,如果父类不定义析构函数为虚函数,在使用父类指针创建子类对象时,在delete的时候调用的析构函数会出错,会调用父类的析构而不会调用子类的析构函数。

11.构造函数里面可以调用虚函数吗

没答上来

可以但是不推荐,比如说父类和子类都有相同的虚函数,并且都在构造函数中调用了这个虚函数,在实例化子类的对象时会出现问题,实例化会先调用父类的构造函数,此时子类对象还未创建,调用虚函数为父类的虚函数而不是子类的虚函数,然后才构建子类调用子类的虚函数。

12.类的所有实例如何共享数据

使用静态成员变量

13.静态成员变量会不会影响类的大小

不会,它存在静态区

14.New和malloc的区别

New会同时申请内存和调用构造函数,而malloc只申请内存

15.New的返回的类型是什么

返回的是一个指针,会根据你接收这个指针的类型返回不同类型的指针。

16.内存分配失败会发生什么

程序崩溃,触发内存分配失败的异常。

17.讲讲内联函数

内联函数会在调用的时候讲函数体的代码复制到该位置,如果多次调用可能会导致编译器多次编译相同的代码,如果代码过长会比较影响效率

18.内联函数和宏的区别

内联函数的类型是安全的,它会进行类型检查,而宏不会,并不安全。

调试信息内联函数出错时会出现在出错的位置,而宏则会出现在定义的位置。

内联函数有明确的作用域,而宏是全局的。

编译器可以选择是否内联该方法,而没有权利控制宏。

19.有了解右值吗

有,但是用的比较少

比如通过使用右值引用,它可以将一个大型的数据结构进行权限的交接,而且不用开辟新的内存,效率较高,适合用于新的对象的创建,且不需要再使用旧对象的情况。

20.模板中的双取址符是右值引用吗

不是,是一种万能引用,可以用来接受右值引用,也可以接受左值引用

21.讲讲stl

是一类标准模板库,可以使用已经写好的容器,比如vector、list、map等等

22.Stl除了容器还有别的东西吗?

有,还会有一些算法像是sort这种

算法、迭代器、智能指针等等

23.讲讲vector和list

Vector的内存连续,可以通过下标快速定位数据,尾插速度快

List的内存不联系,定位较慢,但是插入操作很快

24.Vector和list那个插入速度比较快

List的插入比较快,vector如果是在数组尾部插入会更快一点

25.Vector插入数据后现有的迭代器会不会有影响

如果没有超过容量不会,如果超过了可能会重新分配内存导致迭代器失效

追问:如果迭代器指向第三个数据,在第二个位置插入数据,迭代器会不会有影响

有,但是没答上原因(应该是插入会导致vector重新分配内存,因为它内存连续,后面的数都需要往后挪,导致迭代器失效)

26.判断链表有没有环

用双指针,设置快慢指针,遍历判断有没有相交

27.如何寻找环的入口

通过快慢指针遍历,比如快指针一次走两步,慢指针一次走一步,在相交后拿一个头指针,开始与快指针同时遍历,当两个指针相交的时候就是环的入口。(这里答错了,应该是和慢指针相交为环的入口)

28.计算机如何计算一段算式

通过后波兰表达式,通过栈实现(细节没答清楚)

首先将中缀表达式转化为逆波兰表达式,转化时准备一个字符串数组和一个栈,过程遍历输入的字符串,为如果为数字则直接加入结果数组,如果为计算符则比较栈顶计算符,如果优先级大于栈顶运算符则直接入栈,否则将栈顶之后所有大于等于该运算符优先级的运算符加入结果数组。在遍历完后将栈中所有运算符保存在结果数组中。

然后进行计算,准备一个栈,遍历逆波兰表达式,如果为数字则入栈,如果为运算符计算栈中顶部两个数字,然后将两个数字出栈将结果入栈,依次类推,最后栈中留下一个计算结果。

29.二维数组按行遍历快还是按列遍历快

按行遍历,数组的内存是连续,所以按行更快

30.讲一讲进程和线程

31.线程共享哪些资源

32.讲一讲TCP和UDP

33.TCP是如何建立连接

反问:

这个岗位后续是用纯C++做开发还是用游戏引擎?

答:用的ue

你对这个行业发展的一些看法

答:这个行业的技术力还是很强的,虽然最近有版号的问题,但是我认为这个行业的发展还是不错的

游戏行业的新技术从哪里学习

答:游戏开发者大会(GDC),上面的技术还是比较前沿的

游戏项目的工作计划是如何安排

答:一般比较看经验

#我的实习求职记录#
全部评论
请问是啥时候笔试的呢?
2 回复 分享
发布于 2023-10-10 19:26 河北
多,但是都是基础八股,都不深入
1 回复 分享
发布于 2023-10-16 23:16 广东
佬,啥时候笔和面的呀,简历啥状态呀
1 回复 分享
发布于 2023-10-12 12:02 上海
这个实习岗位在官网上没找到 牛客上又显示在招实习岗 是不是官网还没放出来呀
点赞 回复 分享
发布于 2023-10-18 14:36 重庆

相关推荐

筑波从6月份来了上海腾讯ieg后台开发实习,到11月初离职基本上接近半年的时间。这半年的时间有困扰也有收获,有成长也有祛魅。总以为来腾讯实习后可以把自己之前稀缺的实战经验补齐,但是日常实习总归是大部分的时候都是在干dw类似的活。但是幸运的是我的mt比较好(组里有好几个个人带我,其余的人给的基本上都是dw,但是他们人都很好,这让我很矛盾),让我own了一个小模块,并且一直告诉我要思考自己可以带走什么,同时也和我一起谈天说地,传授我一些工作的经验。这个其实对我来说是温暖的。因为上一份不到一个月的实习就是因为mt的pua我才直接走的。于是在后续的实习中我一直带着目前的活对我自己的能力和思路提升在哪里去干活,并且总结自己可以包装的点。这也是自己唯一可以拿出来讲的东西了。其实自己在实习之前也是看到了很多日常实习基本上也是dw活,一个企业为啥要招日常实习了?私以为本质就是正式员工手上有大量的活需要做人来做。这些活真有价值不一定会给你这个刚来的实习生(所以one one很重要,是一个建立信任的过程),基本上分给你就是大量的脏累活。(我们隔壁组第一天来的人就要干活,并且都是干的一些调接口,写测试报告这种)划重点。如果你是暑期实习生,根据我在鹅厂的其余暑期实习生的了解,大部分想要你的部门,基本上给你的活就会有一定的价值。但如果你是日常实习生,你一定要记得抓到工作中的重点:可以是你mt做的一些相关的工作(自己总结啦),可以是你对于当前负责的模块的思考或者是模块解决的问题你的理解。这些点他们(正职)才不会去管你的收获,这些事情都是需要你自己去做一个分析和积累的。并且如果可以,一定要减少你做dw活的次数,同时主动去要一些有难度的活,建立信任,然后这样他们就会把一些自己的活分给你做(虽然听着是pua,但是你来实习不就是为了积累经验吗?)多做对于自己有益的事情,学习思考自己可以带走什么(mt话又重复出现了)。现在实习和工作就是开盲盒,你永远也不知道自己要去的部门是什么尿性,并且由于现在的竞争越来越大,有一份实习其实已经是非常宝贵,但是开到的部门就拼运气了。筑波离职的部门不知道明年秋招还有没有机会来,如果到时候有多的选择,这里不一定会成为我的first。因为说实话现在部门所干的活基本上也大差不差的知道了,所以不是很想来这里打磨技术(因为没啥有深度的技术),但是对于筑波这样的没受过训练的小白来说,确实得到了一定程度的提升。也希望大家可以顺利找到自己喜欢的部门,同时也可以提升技术!来上海快5个月了,从一开始的不喜欢上海,到现在也是去上海各个区有名的地方都打卡了。如果明年还继续来这里工作和上班,我想我也会愿意。fw的我第一次来腾讯,怀着对于未来无限的憧憬,以为今后的未来将是一条笔直的路,只要努力就可以一路繁花。后来才明白,人生哪有那么多的成功。你以为带上的荣耀,可能也是你祛魅的开始。但是我还是会保留最初的冲劲,向着下一个目标前进!图1是夜幕下金碧辉煌的龙耀路打工楼,图2是腾讯ieg员工活动日,图3是自己在上海邮局博物馆拍到的东方明珠!
腾讯成长空间 5895人发布
点赞 评论 收藏
分享
评论
9
58
分享

创作者周榜

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