首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
蒋豆芽
五邑大学 C++
发布于广东
关注
已关注
取消关注
#C++工程师#
@蒋豆芽:
cvte C++面试凉经解答
原帖:https://www.nowcoder.com/feed/main/detail/578add6252d741eeb11fee27286142a53、epoll,poll,select区别,为啥epoll快。epoll的底层原理(包括结构和回调方式)select,poll,epoll都是IO多路复用的机制,I/O多路复用就是通过一种机制,可以监视多个文件描述符,一旦某个文件描述符就绪(一般是读就绪或者写就绪),能够通知应用程序进行相应的读写操作。区别:(1)poll与select不同,通过一个pollfd数组向内核传递需要关注的事件,故没有描述符个数的限制,pollfd中的events字段和revents分别用于标示关注的事件和发生的事件,故pollfd数组只需要被初始化一次。(2)select,poll实现需要自己不断轮询所有fd集合,直到设备就绪,期间可能要睡眠和唤醒多次交替。而epoll只要判断一下就绪链表是否为空就行了,这节省了大量的CPU时间。(3)select,poll每次调用都要把fd集合从用户态往内核态拷贝一次,并且要把当前进程往设备等待队列中挂一次,而epoll只要一次拷贝,而且把当前进程往等待队列上挂也只挂一次,这也能节省不少的开销。epoll的底层原理:epoll提供了三个函数,epoll_create、epoll_ctl和epoll_wait。 首先创建一个epoll对象,然后使用epoll_ctl对这个对象进行操作(添加、删除、修改),把需要监控的描述符加进去,这些描述符将会以epoll_event结构体的形式组成一颗红黑树,接着阻塞在epoll_wait,进入大循环,当某个fd上有事件发生时,内核将会把其对应的结构体放入一个链表中,返回有事件发生的链表。4、C++多态实现。编译期间如何实现多态?重载。执行期间如何实现多态?虚函数4、虚函数表虚指针的底层原理,析构函数和构造函数可以设置成虚函数吗?为啥?C++默认析构函数不是虚函数,因为申明虚函数会创建虚函数表,占用一定内存,当不存在继承的关系时,析构函数不需要申明为虚函数。若存在继承关系时,析构函数必须申明为虚函数,这样父类指针指向子类对象,释放基类指针时才会调用子类的析构函数释放资源,否则内存泄漏。构造函数不能为虚函数,当申明一个函数为虚函数时,会创建虚函数表,那么这个函数的调用方式是通过虚函数表来调用。若构造函数为虚函数,说明调用方式是通过虚函数表调用,需要借助虚表指针,但是没构造对象,哪里来的虚表指针?但是没有虚表指针,怎么访问虚函数表从而调用构造函数呢?这就成了一个先有鸡还是先有蛋的问题。5、四种智能指针说一下,weekptr和shareptr详细说一下。使用普通指针,容易造成堆内存泄露(忘记释放),二次释放,程序发生异常时内存泄露等问题等。正是因为指针存在这样的问题,C++便引入了智能指针来更好的管理堆内存。智能指针是利用了一种叫做RAII(资源获取即初始化)的技术对普通的指针进行封装,这使得智能指针实质是一个对象,行为表现的却像一个指针。因为智能指针就是一个类,当超出了类的作用域时,类会自动调用析构函数,自动释放资源。这样程序员就不用再担心内存泄露的问题了。C++里面有四个指针:auto_ptr、unique_ptr、shared_ptr、weak_ptr,后面三个是C++11支持的,第一个被C++11弃用。shared_ptr实现共享式拥有概念。多个智能指针可以指向相同对象,该对象和其相关资源会在“最后一个引用被销毁”时候释放。shared_ptr存在共享指针的循环引用计数问题。weak_ptr是弱引用,weak_ptr的构造和析构不会引起引用计数的增加或减少。我们可以将其中一个改为weak_ptr指针就可以了。6、Linux下的进程和线程的区别,以及通信原理。(1)一个线程从属于一个进程;一个进程可以包含多个线程。(2)一个线程意外死亡,可能导致进程挂掉;一个进程挂掉,不会影响其他进程。(3)进程是系统资源调度的最小单位;线程CPU调度的最小单位。(4)进程系统开销显著大于线程开销;线程需要的系统资源更少。(5)进程在执行时拥有独立的内存单元,多个线程共享进程的内存,如代码段、数据段、扩展段;但每个线程拥有自己的栈段和寄存器组。(6)进程切换时需要刷新TLB并获取新的地址空间,然后切换硬件上下文和内核栈,线程切换时只需要切换硬件上下文和内核栈。(7)通信方式不一样。(8)进程适应于多核、多机分布;线程适用于多核7、tcp四挥中的time_wait。Client收到Server的FIN报文后,给Server发送一个ACK报文,确认序列号为收到的序号+1。此时Client进入TIME_WAIT状态,等待2MSL(MSL:报文段最大生存时间),然后关闭连接。8、使用udp实现可靠数据传输,加入TCP可靠机制。序列号、确认应答、超时重传数据到达接收方,接收方需要发出一个确认应答,表示已经收到该数据段,并且确认序列号,序列号说明了它下一次需要接收的数据序列号,保证数据传输有序。如果发送方迟迟未收到确认应答,那么可能是发送的数据丢失,也可能是确认应答丢失,这时发送方在等待一段时间后进行重传。窗口控制 TCP会利用窗口控制来提高传输速度,意思是在一个窗口大小内,不用一定等到应答才能发送下一段数据,窗口大小就是无需等待确认而可以继续发送数据的最大值。如果不使用窗口控制,每一个没收到确认应答的数据都要重发。使用窗口控制,如果数据段1001-2000丢失,后面数据每次传输,确认应答都会不停发送序号为1001的应答,表示我要接收1001开始的数据,发送端如果收到3次相同应答,就会立刻进行重发;数据一旦丢失,接收端会一直提醒。拥塞控制如果把窗口定的很大,发送端连续发送大量的数据,可能造成网络的拥堵。为了防止拥堵,进行拥塞控制。(1)慢启动:定义拥塞窗口,一开始将该窗口大小设为1,之后每次收到一次确认应答(一次成功来回传输),将拥塞窗口大小 乘以2,呈指数增长。(2)拥塞避免:设置慢启动阈值,一般开始都设为65536。拥塞避免是指当拥塞窗口大小达到这个阈值,拥塞窗口的值不再指数上升,而是+1,让其缓慢增加。(3)快恢复:将报文段的超时重传看做拥塞,则一旦发生超时重传,我们就将阈值设为当前窗口大小的一半,并且窗口大小也变为原来窗口大小一半,如果收到新的ACK,表明重传的包成功了,那么退出快速恢复算法,进入拥塞避免算法(4)快速重传:数据一旦丢失,接收端会一直提醒。发送3次重复确认应答,发送端收到后立即重传数据包,不用等待超时。以上答案均来自我个人面经,有兴趣的同学可以关注我的牛客博客空间。校招面试考点全解析——C++软件与嵌入式篇
点赞 11
评论 9
C++工程师
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
昨天 16:29
睿联技术_结构工程师(准入职员工)
正浩创新内推,正浩创新内推码
26届女硬件工程师丨正浩创新面经及流程9.1一面1.自我介绍2.有无相关电源设计项目或经历,并浅谈3.DCDC拓扑手撕(但是我当时没带纸笔所以口头描述),BUCK和BOOST,同步异步的区别和优缺点,同步电路的控制方式(施加什么PWM波形,如何控制MOS通断)4.项目中最有挑战性的部分,怎么解决的,然后会深挖这一部分再提问(这个问题出现的根本原因,下次如何避免)5.面试官说我专业其实不是很对口,不是电气工程专业,所以问的比较浅,大家仅供参考9.2收到笔试链接,非笔试,为性格测试9.5收到二面短信9.8 二面,没有技术问题,主要问了在校做过什么项目,调试遇到什么问题,除此之外有没有做过电源相关项...
点赞
评论
收藏
分享
02-21 16:39
上海交通大学 算法工程师
网易游戏用户运营一面
岗位名称:游戏用户运营面试时长:50min–1h自评分:8/10是否下一轮:是用户运营基础认知如何理解用户运营?你觉得用户运营在游戏中的核心价值是什么?(追问)如果用一句话概括用户运营的目标,你会怎么说?游戏用户运营的核心目标有哪些?不同阶段是否会有变化?(追问)游戏上线初期和成熟期在运营侧的重点会有什么不同?用户运营与内容运营、活动运营之间有什么区别和协同关系?(追问)如果三者目标发生冲突,你认为优先级如何判断?实习经历与岗位匹配你之前在网易的实习是在哪个分部?团队主要负责什么产品?在网易实习期间你主要承担了哪些工作?更偏执行还是策略?(追问)有没有参与到具体方案制定?还是更多落地执行?你觉...
运营必备题库
点赞
评论
收藏
分享
02-06 01:58
吉林大学 产品经理
深夜迷茫
我是一个末九的计算机本科生,26毕业,秋招兜兜转转,大厂基本挂了个遍,自己只有一段小小小厂实习,能有那么多大厂的面试挺庆幸了,但是都挂了心里还是很难过。虽然知道自己没好好学,但是为了秋招是认真准备的,但还是因为没项目没实习大多止步二面了。最后秋招接到了三个offer,两个上海企业,一个12k一个16k,还有一个工行的offer,选择了工行,年包听说20个左右,同学和我一样本科进的京东50个,进华为的30个,进字节的50个,感觉我们差距太大了。现在晚上睡不着,在想现在开始春招投递冲一把,还是就选择工行呢
压缩包怎么解压:
工资自己能接受就先干着吧,没什么好比的说实话,资本家不会让你干小事拿大钱的
春招启动,你开始投递了吗...
点赞
评论
收藏
分享
01-09 13:28
已编辑
深圳大学 产品经理
寒假实习
昨天在实习公司面试其他公司被同事发现,然后被反馈给主管。要下班的时候谈话直接被开除 哈哈哈哈哈实习实习 深圳!! 有没有推荐或者继任的产品 运营 供应链都可以!
牛客60887332...:
你这考研不是成了反向考了吗
你开始找寒假实习了吗?
点赞
评论
收藏
分享
02-24 19:00
九州通医药集团_集团业务管培生(准入职员工)
步步高内推,步步高内推码
步步高实验学校 2026届校招启动啦【学校简介】东莞市步步高实验学校于 2023 年投入运营,占地 230 亩,是一所集幼儿园、小学、初中、高中于一体的十五年一贯制非营利性高端民办学校,学校全面实行小班化教学,学校师生比为 1:5;步步高教育专家团队由来自一流大学的国家课标专家、教育学家,来自著名学校的卓越校长,来自一线、有着丰富教学经验的著名特级教师,以及来自国家级教育媒体的教育策划专家共同组成,为步步高的课程、教学、管理奠定了坚实基础。【招聘岗位】• 幼儿园、小学部及初中部各学科类教师 & 国际教师,类别多多,等你pick! 【福利待遇】• 薪资:幼儿园老师年收入16万起 、中小学...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
1
收藏
分享
评论
提到的真题
返回内容
招聘动态
查看更多
27届简历点评
27届寒假/转正实习汇总
全站热榜
更多
1
...
总结下秋招被问到的关于AI的面试题
3430
2
...
你们开工红包发了多少?评论抽2人送外卖券
2784
3
...
二十多岁,谁不是一边混乱一边找答案
1797
4
...
没有不拿offer的义务!
1505
5
...
双非大厂实习
1479
6
...
再战27暑期实习!!懂车帝Agent架构一面
1310
7
...
27届暑期实习抢救计划
1252
8
...
小镇青年观察日志[大凸篇]
825
9
...
开水加点🍬
819
10
...
相求问下我的简历该怎么优化?很多hr拿到简历之后就不回复了很难受
807
创作者周榜
更多
正在热议
更多
#
xx岗简历求拷打
#
5244次浏览
60人参与
#
牛客租房专区
#
160749次浏览
1935人参与
#
有转正机会的小厂实习值得去吗?
#
6787次浏览
77人参与
#
掌握什么AI技能,会为你的求职大大加分
#
5260次浏览
227人参与
#
开工第一帖
#
17362次浏览
334人参与
#
携程求职进展汇总
#
885172次浏览
5812人参与
#
你最讨厌面试被问什么
#
7202次浏览
90人参与
#
金三银四,你有感觉到吗
#
692813次浏览
6088人参与
#
哪些公司开春招了?
#
33612次浏览
206人参与
#
找工作时的取与舍
#
122742次浏览
877人参与
#
你学到的“最没用”的职场技能是
#
20286次浏览
154人参与
#
秋招提前批,你开始投了吗
#
718109次浏览
8443人参与
#
应届生,你找到工作了吗
#
107631次浏览
626人参与
#
毕业季等于分手季吗
#
54972次浏览
654人参与
#
面试反问你会问什么
#
167379次浏览
1718人参与
#
大家每天通勤多久?
#
90094次浏览
1008人参与
#
面试题刺客退退退
#
534340次浏览
7527人参与
#
工作不开心辞职是唯一出路吗
#
8558次浏览
33人参与
#
远程面试的尴尬瞬间
#
327621次浏览
1910人参与
#
记录实习开销
#
191134次浏览
1143人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务