百度 C++ 一面

1 自我介绍

2 对于Const关键字的理解

先介绍了const首先是定义一个常量用的 后来就结合指针(顶层和底层) 介绍了一下具体情况

后面他又结合具体例子,比如 结合类中的成员函数(常函数和成员函数区别和联系) 来和我简单聊了

3 对于static 关键字的理解

static 是定义一个静态变量用的

  1. 定义全局静态变量和局部静态变量:在变量前面加上static关键字。初始化的静态变量会在数据段分配内存,未初始化的静态变量会在BSS段分配内存。直到程序结束,静态变量始终会维持前值。只不过全局静态变量和局部静态变量的作用域不一样;

  2. 定义静态函数:在函数返回类型前加上static关键字,函数即被定义为静态函数。静态函数只能在本源文件中使用;

  3. 在变量类型前加上static关键字,变量即被定义为静态变量。静态变量只能在本源文件中使用

  4. 在c++中,static关键字可以用于定义类中的静态成员变量:使用静态数据成员,它既可以被当成全局变量那样去存储,但又被隐藏在类的内部。类中的static静态数据成员拥有一块单独的存储区,而不管创建了多少个该类的对象。所有这些对象的静态数据成员都共享这一块静态存储空间。

  5. 在c++中,static关键字可以用于定义类中的静态成员函数:与静态成员变量类似,类里面同样可以定义静态成员函数。只需要在函数前加上关键字static即可。如静态成员函数也是类的一部分,而不是对象的一部分。所有这些对象的静态数据成员都共享这一块静态存储空间。

    然后 又结合类中的static 问在类的成员函数中 定义一个静态变量的生命周期
    类成员函数静态变量的作用域:和类的静态变量没有差别,所有的成员函数都共享这个静态变量,所有的对象共享同一份数据
    存储及生命周期:在静态存储区,整个程序运行期间一直存在。

    4 STL容器

    首先介绍了一下STL的常见容器
    问了map以及unordered_map的区别
    接着问了vector的扩容机制

后面问了怎么让vector避免多次扩容

这块回答的不太好,但是主题思想是对的
其实面试官的一次是在一开始就申请好足够大的空间,这是需要调用reverse函数来完成的。
可以重点看一看reverse和resize的区别 其中reverse只改变容量,不添加元素,但是resize有两个参数,既改变容量,又向容器中添加元素。

5. 聊聊项目中的问题

  1. 针对YOLOV3项目的做的事情
    大概讲了一下项目以及做的工作
  2. 服务器的项目
    1. 单例模式
    2. 怎么处理高并发的问题

这里高并发,我主要说的是用epoll 以及线程池的操作来实现。 因为线程池里面的线程是分离状态,可以不断的从队列中取出工作任务来执行。(问题总结中有相关解释)

  1. RAII机制介绍,以及优缺点
    RAII,即Resource Acquisition Is Initialization,在初始化中获取资源。
    RAII机制,通过在栈上创建临时变量,这样临时变量就接管了堆上内存的控制权,当该临时变量声明周期结束时,则对应的堆上内存自然就被释放了。
    RAII机制保证了异常安全,并且也为程序员在编写动态分配内存的程序时提供了安全保证。缺点是有些操作可能会抛出异常,如果放在析构
    函数中进⾏则不能将错误传递出去,那么此时析构函数就必须⾃⼰处理异常。这在某些时候是很繁琐的。

6. 手撕代码

首先 写了一个单例模式,这个还是因为自己太菜了,昨天还看了代码,但是面试太紧张给忘了 死活写不出来

写了一个链表的结点
问了直接构造初始化以及 构造函数体内初始化的区别(少了一遍拷贝构造)

写在函数内部的话,是先用默认构造初始化了一遍,再到函数内部赋值一遍。所以应该优先用初始化列表。更何况如果是没有默认构造的类型,只能通过初始化列表搞。

其次 手撕了一个反转链表,没什么难度,又让我用递归写..我递归学的不好,没写上来(真是太菜了。。)

然后 写了一个反转数字

反转数字

但是后面问我,当前这个反转数字的程序有哪些可能存在的问题,我没太上说来,后面想想应该是爆int的问题。

6 反问

问 对新人有哪些 素质和技能的期待

答 针对C++的话,会CUDA编程和GPU并行优化的话 话更有优势一点。

#百度面试#
全部评论
楼主有后续面吗
点赞 回复 分享
发布于 2022-08-17 21:50 山西
你好,可以看一下我主页讨论帖。亿联网络,厂商,通信行业独角兽,16薪,薪资福利行业领先,有兴趣的话可以直接去我讨论帖内推链接,hr直通车https://neitui.italent.cn/yealink/sharejobs?shareId=5e36baaf-1cf5-47cd-8973-6294f8c3ef68在帖子下留言(姓名+岗位方便查进度哈)
点赞 回复 分享
发布于 2022-08-16 00:40
考虑小红书吗,感兴趣的话可以投一下https://pegasus.xiaohongshu.com/recommend/job-info/6477/XHSTOKEN-aDJRQnA1Sm1yb0kyMW5HaDRNb2RSZi9XUTNrN3RIaCsxV2VGZW9FOGpuTT0=
点赞 回复 分享
发布于 2022-07-29 14:18
lz 是投的嵌入式linux 还是软开c++
点赞 回复 分享
发布于 2022-07-29 12:10

相关推荐

2025-12-15 12:50
河北工程大学
sta666:我也是这个国际商业化的,三天,一天一面,就通过了,不过我是后端实习生,好好面感觉能过。
点赞 评论 收藏
分享
最近群里有很多同学找我看简历,问问题,主要就是集中在明年三月份的暑期,我暑期还能进大厂嘛?我接下来该怎么做?对于我来说,我对于双非找实习的一个暴论就是title永远大于业务,你在大厂随随便便做点慢SQL治理加个索引,可能就能影响几千人,在小厂你从零到一搭建的系统可能只有几十个人在使用,量级是不一样的。对双非来说,最难的就是约面,怎么才能被大厂约面试?首先这需要一点运气,另外你也需要好的实习带给你的背书。有很多双非的同学在一些外包小厂待了四五个月,这样的产出有什么用呢?工厂的可视化大屏业务很广泛?产出无疑是重要的,但是得当你的实习公司到了一定的档次之后,比如你想走后端,那么中厂后端和大厂测开的选择,你可以选择中厂后端(注意,这里的中厂也得是一些人都知道的,比如哈啰,得物,b站之类,不是说人数超过500就叫中厂),只有这个时候你再去好好关注你的产出,要不就无脑大厂就完了。很多双非同学的误区就在这里,找到一份实习之后,就认为自己达到了阶段性的任务,根本不再投递简历,也不再提升自己,玩了几个月之后,美其名曰沉淀产出,真正的好产出能有多少呢?而实际上双非同学的第一份实习大部分都是工厂外包和政府外包!根本无产出可写😡😡😡!到了最后才发现晚了,所以对双非同学来说,不要放过任何一个从小到中,从中到大的机会,你得先有好的平台与title之后再考虑你的产出!因为那样你才将将能过了HR初筛!我认识一个双非同学,从浪潮到海康,每一段都呆不久,因为他在不断的投递和提升自己,最后去了美团,这才是双非应该做的,而我相信大部分的双非同学,在找到浪潮的那一刻就再也不会看八股,写算法,也不会打开ssob了,这才是你跟别人的差距。
迷茫的大四🐶:我也这样认为,title永远第一,只有名气大,才有人愿意了解你的简历
双非本科求职如何逆袭
点赞 评论 收藏
分享
评论
3
42
分享

创作者周榜

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