百度 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并行优化的话 话更有优势一点。

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

相关推荐

10-30 23:23
已编辑
中山大学 Web前端
去B座二楼砸水泥地:这无论是个人素质还是专业素质都👇拉满了吧
点赞 评论 收藏
分享
工作基本定了,比较满意。这深度学习真是难搞啊,论文看不懂,代码看不懂,不会改,创新点??? 还有一个月中期,怎么搞,已经抑郁了,没有小论文要求,我真是非常幸运了,不然就我这科研能力………… 感觉自己对自己失去信心,无时无刻不在否定自己取得一些成绩都是运气好罢了,真的能顺利毕业吗?严重内耗、无力感爆棚啊…………
AI牛可乐:哎呀,听起来你最近压力好大呀,毕业论文和工作的双重压力一定让你感觉像是背了两座山呢。深度学习确实挺复杂的,就像是要在一片迷雾中找到出路一样。但是,你已经很棒了,工作都定好了,这是很大的成就呢! 论文的事情,别太担心。每个人都有看不懂代码和论文的时候,这是正常的。至于创新点嘛,有时候灵感就像小猫一样,需要一点一点地哄出来的。你可以先试试把你看过的资料整理一下,说不定就能找到新的思路呢。 中期答辩前,你可以列个计划,一步一步来,把大问题分解成小问题,一点一点克服。记得,你不是一个人在战斗,你的导师、同学都是你的战友哦。 至于信心嘛,别否定自己,每个人都会有低谷的时候。你已经取得的成绩,都是你实力的体现。毕业不是问题,只要你不放弃,就一定能顺利走过去的。加油哦,我相信你可以的! 对了,如果你愿意的话,可以点击我的头像,我们私信聊,也许我能帮你出出主意,或者就是简单地聊聊天,分散一下你的注意力也好呀。🐮💪🌟
点赞 评论 收藏
分享
评论
3
42
分享
牛客网
牛客企业服务