字节跳动游戏二面

感觉二面应该要凉了,有几个问题没答出来,编程题也简单的过分,很虚,讲一讲玩过哪些游戏,对游戏的看法。
1.虚函数讲一讲?
2.构造函数是否能定义成虚函数?
3.++i和i++区别,在内存方面有什么区别?

i++ 与 ++i 的主要区别有两个:

  1. i++ 返回原来的值,++i 返回加1后的值。
  2. i++ 不能作为左值,而++i 可以。
int i = 5;
int *p1 = &(++i); //正确,++i可通过取地址&运算符获得内存地址
int *p2 = &(i++); //错误,i++不可通过取地址&运算符获得内存地址
++i = 1; //正确,++i可作为左值
i++ = 5; //错误,i++不可作为左值
前缀形式:
int& int::operator++() //这里返回的是一个引用形式,就是说函数返回值也可以作为一个左值使用。
{//函数本身无参,意味着是在自身空间内增加1的
  *this += 1;  // 增加
  return *this;  // 取回值
}
后缀形式:
const int int::operator++(int) //函数返回值是一个非左值型的,与前缀形式的差别所在。
{//函数带参,说明有另外的空间开辟
  int oldValue = *this;  // 取回值
  ++(*this);  // 增加
  return oldValue;  // 返回被取回的值
}
//如上所示,i++ 最后返回的是一个临时变量,而临时变量是右值。

效率差别

前置++i 消耗少一些,只需加1后返回加1的结果就行了。 
后置的话要先保存原来的值,因为要返回没有加1前的值作为操作结果。 

尤其是,对于重载后的++i和i++来说,效率差距挺大的。- -i和i- -同理。

4.计算机网络socket讲一讲?
5.进程和线程的通信上的区别?
6. stl的迭代器和指针的区别?
迭代器:
      (1)迭代器不是指针,是类模板,表现的像指针。他只是模拟了指针的一些功能,通过重载了指针的一些操作符,->,*,++ --等封装了指针,是一个“可遍历STL( Standard Template Library)容器内全部或部分元素”的对象, 本质是封装了原生指针,是指针概念的一种提升(lift),提供了比指针更高级的行为,相当于一种智能指针,他可以根据不同类型的数据结构来实现不同的++,--等操作;
      (2)迭代器返回的是对象引用而不是对象的值,所以cout只能输出迭代器使用*取值后的值而不能直接输出其自身。
      (3)在设计模式中有一种模式叫迭代器模式,简单来说就是提供一种方法,在不需要暴露某个容器的内部表现形式情况下,使之能依次访问该容器中的各个元素,这种设计思维在STL中得到了广泛的应用,是STL的关键所在,通过迭代器,容器和算法可以有机的粘合在一起,只要对算法给予不同的迭代器,就可以对不同容器进行相同的操作。
  注:迭代器在使用后就释放了,不能再继续使用,但是指针可以!!
指针:
        指针能指向函数而迭代器不行,迭代器只能指向容器;指针是迭代器的一种。指针只能用于某些特定的容器;迭代器是指针的抽象和泛化。所以,指针满足迭代器的一切要求。
        总之,指针和迭代器是有很大差别的,虽然他们表现的行为相似,但是本质是不一样的!一个是类模板,一个是存放一个家伙的地址的指针变量。

7.写个代码vector删除某个元素,并记录该元素的数量(没get面试官想考啥)
8.排序算法讲一讲?
为啥字节两面都一点不问项目啊,我真的是怂了。。。
#字节跳动##面试题目##吐槽#
全部评论
大佬二面也是一个小时吗?感觉问题比一面少了很多。
点赞 回复 分享
发布于 2019-09-03 20:01
楼主一二面是连续面的吗?
点赞 回复 分享
发布于 2019-09-02 22:39

相关推荐

1.原子操作?C++11,C++14,C++17了解吗?2.智能指针,举例写代码出现的循环引用问题?shared-ptr?weak-ptr?unique-ptr?shared-ptr是线程安全的吗?3.tcp最大长度是多少?4.tcp有粘包问题吗?udp呢?如何避免粘包?三次握手四次挥手讲一下?为什么需要三次握手四次挥手?第三次握手可以传递消息吗?5.当你一个tcp携带的内容很大,接受区怎么操作?6.指针和引用的区别?C++定义一个空类?空类里面有什么函数?7.多态?静态多态和动态多态?动态多态具体咋实现的?静态多态中函数重载C语言可以吗?8.静态多态中函数重载,操作系统如何判断实际要调用的是哪一个函数?9.了解哪些常用的数据结构?数组,链表,队列的应用场景?他们的迭代器有什么不同?map和unordered-map怎么实现的?哪个效率更好?10.内存了解吗?内存越界的情况?会用什么内存工具吗?11.栈溢出了解吗?爆栈除了递归还有什么情况?栈的大小可以手动调试吗?12.编写程序出现的异常怎么操作的?如何定位的?假如项目上线?除了通过日志定位异常发生位置?你怎么知道项目哪里出现问题,如何快速解决?13.单例函数具体怎么实现的?假设多个线程同时调用单例函数?会发生什么?14.了解锁吗?是自己手动实现,还是用C++库p-mutex15. ET模式,为什么用ET?和LT的区别在哪?16. epoll和select,poll的区别?他们三者的时间效率怎么评估?不是时间复杂度。。。?select的最大长度是多少,如果超过了最大长度会怎么办?17.平常用什么开发语言?会python吗?并不会,全靠大模型代码生成。。。。18.反问?做什么业务?类似软件SDK服务,可移植性到不同开发平台,Linux,Windows,MAC,比如人脸识别啥的?和嵌入式不搭边,不和硬件打交道19.面试评价?表达能力还行,主要是逗面试官笑,自己也放松面,秋招随缘,还得了解更多底层原理,体现知识深度,东西都是根据简历问的,就一个Webserver,云存储那个项目没问,实习银行的也没问,竞赛科研也没问,和做的方向不搭边。20.java会吗,我说java不记得了,面试官听成了java不重要,给人家逗笑了,给我也逗笑了。面试体验还是很好的,看着面试官点头就愿意继续说,问的很宽很广,面试多注重简历,其他人的面经参考性质不大。
查看18道真题和解析
点赞 评论 收藏
分享
评论
1
19
分享

创作者周榜

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