首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
C++工程师精选面经合集
4家公司
10篇面经
最新
热门
今天 08:57
浙江大学 算法工程师
OPPO C++ 软件开发 一面 面经
1. 自我介绍答:按"个人背景 → 核心技术栈 → 代表项目 → 求职意向"四段走,控制在2分钟重点突出和岗位相关的经验,不要把简历从头念一遍结尾说一句为什么对OPPO感兴趣,体现你做过功课2. 你做过的项目里,技术上最有挑战的是哪个,难在哪里?答:这道题考察技术深度和解决问题的能力,不是简历复读回答结构:项目背景(一句话)→ 具体的技术难点(说清楚难在哪,不能说"功能复杂")→ 你的解法(为什么这么做)→ 结果面试官会顺着你说的细节追问,只说你真正主导过的部分难点要具体:比如"多设备并发上报导致消息乱序"比"系统很复杂&q...
C++八股文全集
点赞
评论
收藏
分享
/discuss/868416561575383040
今天 00:50
门头沟学院 C++
光云科技 C++开发 一面
1. 自我介绍2. 智能指针介绍一下,shared_ptr 最大的坑是什么答案:C++ 里常见的智能指针有 unique_ptr、shared_ptr 和 weak_ptr。unique_ptr 表示独占所有权,适合生命周期边界清晰的对象;shared_ptr 表示共享所有权,底层通过控制块维护引用计数;weak_ptr 不拥有对象,只负责观察,通常用来打破循环引用。shared_ptr 最大的坑通常不是“性能差一点”,而是所有权设计被滥用。很多对象本来没有共享语义,却因为图省事到处传 shared_ptr,最后生命周期越来越难推理。另一个常见问题就是循环引用,两个对象互相持有 shared_...
C++ 常考面试题总结
点赞
评论
收藏
分享
/discuss/868293959037026304
昨天 20:12
已编辑
东南大学 C++
26.3.19 腾讯广告cpp一面
1.你做一下自我介绍。2.你的规划是什么?3.你说的是长期规划,那技术方向上有什么倾向?4.你有考研的计划吗?5.你是打算本科毕业直接工作吗?6.你们现在保研结果出来了吗?7.你现在有没有其他实习 offer?8.字节那边的实习没有继续做了吗?9.你现在不能再回原来的组实习了吗?10.如果原来实习的组给你 offer,你会去吗?11.你做的 C++ 客户端是 PC 端的吗?12.你们做的是一个 C++ SDK,对接 iOS、安卓和鸿蒙,是吗?题目一 / C++ 并发相关15.这段代码有什么问题?16.为什么这里会出现多线程问题?17.除了加锁,还有什么解决方法?18.你先解释一下 static 作用在变量上、作用在函数上有什么区别。19.如果这个函数是类里的普通成员函数,里面定义了一个 static 变量,再对它做 push_back,会有什么问题?20.为什么这个 static 变量不会每次调用都重新初始化?21.如果你用锁来解决,这个锁应该声明在哪里?22.如果这个类实例化出两个对象 A 和 B,它们都会调这个函数,那是不是也会操作同一个数组?23.那这里是不是应该用静态锁,或者类似的全局共享锁?24.除了用锁之外,还有没有别的解决办法?25.你提到原子变量,那你怎么理解原子变量?26.如果代码可以随便改,为什么不能把 static 去掉?27.把 static 去掉以后,能不能解决并发问题?28.如果把 static 去掉,会引入什么额外问题?C++ / 容器 / 数据结构29.你简历里提到用了 concurrent hashmap,可以介绍一下吗?30.哈希表的实现原理你知道吗?31.哈希表是有序的还是无序的?32.如果要把它做成“按插入顺序有序”,你会怎么做?33.标准库里的 std::map 底层实现原理你了解吗?实习项目追问34.你介绍一下你说的这个三档 TTL 和分层缓存框架。35.这个 key 是怎么设计的?36.value 里存的是什么?37.这个缓存是怎么更新的?怎么触发更新?38.这样的话使用方如果拿到的是过期值,是不是要多等一次回源时间?39.你们的缓存命中率大概是多少?40.你拿到这个 key 之后,怎么知道去访问哪一档缓存?41.这个分档是动态判断的,还是你们手动维护配置文件?题目二 / 设计与代码实现操作系统52.你对虚拟内存有什么了解?53.虚拟内存是怎么实现的?54.系统怎么找到被换到磁盘上的那块数据?55.这个地址映射是怎么设计的?56.这个映射关系的数据结构叫什么名字?SQL 优化 / 实习项目57.你之前做过 SQL 优化,是吧?58.解释一下什么是 SQL 签名化。59.这个服务是在后端部署的服务查数据库,还是端上的 SDK 查本地数据库?60.你查端上的数据库时,每次都要建立连接吗?61.你说多个 SQL 合并之后,只查最小时间戳,是什么意思?62.你们做这个优化的前提,是多个请求同时发过来,对吧?63.你们会去缓存这些请求吗?64.这个缓存多久?题目一二详见图片,正常面试一直在追问,然后不给反馈,全程冷脸。当然也认识到很多知识盲区了。很多不重要的问题删了,大多数是问实习。
点赞
评论
收藏
分享
/feed/main/detail/b84abbd92d6e415481028b5545999660
昨天 20:06
华南理工大学 C++
腾讯C++一面
1. 个人情况自我介绍2. 基础多态的实现机制——(静态多态也就是重载,动态多态(虚函数,虚函数表,不同子类调用同一函数的效果不同,虚函数指针))如何保证并发安全?——(回答了加锁、互斥、读写,共享,间隙,和原子操作)了解CAS操作吗?(答到原子操作和自旋,造成CPU忙等待,但不会嵌入内核)CAS的问题了解吗?(答到了)ABA问题了解吗?(答到了,但是不熟练)内核态和用户态的区别是?(硬件访问权限和资源访问权限)协程有了解过吗?(没写过,但知道是用户态的线程,并发性极强)HTTP和TCP和UDP是什么,有什么区别,介绍一下?(应用层/传输层,HTTP的版本,HTTP基于TCP,TCP的可靠交付?)TCP用什么保证可靠交付?(回答了序列号,ACK,重传,拥塞控制和接收窗口返回)HTTP可以基于UDP实现吗?(正常不行,除非UDP内部实现了可靠)UDP为什么可以用在游戏传输?(可接受一些损耗,因为可以补帧,但延迟卡顿会非常明显)3. 项目拷打:缓存系统是本地的吗?怎么实现的?LRU怎么实现?LRU-K进阶在哪?内存泄露怎么解决?了解垃圾回收吗?(这个答的不好,记得垃圾回收有三个限制只能达到两个,C++实现了性能最优,因此要手动管理,Java的GC自动管理,因此性能会稍差)shared_ptr的引用计数原理?什么时候被清理的?工作负载剧烈变化场景是怎么个变化?(项目细节)如果缓存系统加上TTL呢?你怎么实现?Redis的LRU策略了解吗?缓存击穿是什么?解决方案有什么?QPS怎么测的?具体在什么环境下测量的?具体测QPS需要考虑哪些指标?比如CPU核数?哈希倾斜了解吗?分片的时候出现哈希倾斜怎么解决?raft从哪里学习的?MCP了解吗?SKILL了解吗?(没怎么了解,未深入)了解哪些分布式一致性算法?(raft?ZAP?)哪些场景需要这些分布式一致性算法?或者说协议?Protobuf 和 Json 在网络传输中怎么抉择?(包体大小,反序列和序列化,可读性)CAP的一致性和数据库事务的一致性对比一下?CAP的CA,CP,AP各自是什么,有哪些协议,用在哪些场景。4. 怎么学习的?当前的安排是?力扣题:19. 删除链表的倒数第 N 个结点(因为做过,说了思路,然后扩展,可以类比哪种数据结构解决,说了栈,说对了)402. 移掉 K 位数字(这道题手写,写了可能得有15分钟...微调得有点久,一些细节没考虑好...)反问环节1. 业务范围?2. 表现评价:- 面试官反馈:基础扎实,但项目细节还需深挖。- 面试官人很好,收获良多!期待二面,但未必能二面(一成把握)
点赞
评论
收藏
分享
/feed/main/detail/08962a77b58b4186a6150cb9bd3adeb6
今天 00:47
门头沟学院 C++
经维恒润 软件开发-C++ 一面
1. 介绍一下 DDS答案:DDS,全称 Data Distribution Service,是一种面向数据、以发布订阅为核心的分布式通信中间件标准。它和传统“请求-响应”式通信不太一样,DDS 更强调数据空间、主题、QoS 和实时分发,发布者和订阅者之间通常不需要直接感知彼此地址,而是围绕 Topic 进行通信。它的优势主要体现在低时延、高吞吐、强 QoS 控制以及天然支持去中心化发现机制,在工业控制、车载、机器人、仿真系统这些对实时性和可靠性要求高的场景里比较常见。如果往深一点说,DDS 不只是“发消息”,它更像一套完整的数据分发模型,核心对象一般包括 DomainParticipant、...
C++ 常考面试题总结
点赞
评论
收藏
分享
/discuss/868293375105982464
昨天 12:58
浙江大学 算法工程师
影石 | C++开发工程师 二面题目
1. 介绍一下你做过的最有技术含量的项目,重点说架构设计和你的核心贡献。答:二面开场必问,考察的是系统思维和技术主导能力,不是简历复读。回答结构:项目背景(一句话说清楚是什么、规模、你的角色)→ 核心技术挑战(为什么难,不是"功能多"这种废话)→ 你的架构决策(为什么这么设计,有没有考虑过其他方案,为什么否定)→ 结果和反思(数据支撑,以及如果重来会怎么改)。面试官会顺着你说的细节追问,所以只说你真正主导过的部分,每个技术决策背后要有理由,不能说"当时就这么做了"。2. 你在项目中如何处理多个硬件设备并发上报数据时的竞态问题?用了什么同步策略,为什么这么...
C++八股文全集
点赞
评论
收藏
分享
/discuss/868114767242682368
03-28 12:35
北京科技大学 人工智能
寒武纪 笔试C++
一共四道题,我是菜狗,全都没有100%,最后一道题没做出来第一道题:一个班有N个学生,如果上课之前到场人数少于K,这节课就取消,给你NK和全班人到班里的时间,让你判断这节课会不会被取消e.ginput :N4K3 时间:-1 -3 4 2 ==>YES 会被取消,因为0时刻到班俩人我感觉就是盘有多少大于0的数字,看这个数是不是比K小就行,一开始只有60%,加了个K>N输出YES就80%,然后我就想不到别的情况了,欢迎大佬评论区指导!!!第二题:有点像斐波那契,f(i+2)=f(i)+f(i+1)*f(i+1),让你求f(n)input:f(1) f(2) n 0<=f1,f2<=2 3<=n<=12我直接递归的,只有60%,一个是longlong会溢出,还有应该可能是内存占用太大 ?第三题:有A、B、C、三个数组,每次从两个数组中选一个元素进行删和减操作,比如从A里选a,B里选b,然后B删掉b,A里的a变成a-b,问你最后留下来的数组元素之和最大是多少input: 2 4 1(三个数组的长度,题里的输入是三行,我直接写一行里了哈)1 2(第一个) 6 3 4 5(第二个)5(第三个)output:20个人觉得,就是三个数组元素之和,先选个max mid 和min,然后return mid-(min-max);然后mid = sum1+sum2+sum3-max-min,带进去就是return sum1+sum2+sum3-2*min,但是只有50%第四题:我感觉可能和bfs/dfs有关,可以做出来,但是我的脑子,em,不好形容题目:给你一个全排列序列(题目就是这样说的我记得,其实就是1~n的乱序),让你找1~n阶完美序列,举个例子吧序列L:4 5 1 3 2 6下标i:0 1 2 3 4 51阶 就是包含12阶 就是连续的两个位置包含1和2 这个序列的1和2被3隔开了,所以没有2阶3阶 L[2~4]连续包含123,虽然是132,但是算作完美序列以此类推最后输出是一串01字符,一阶有为1,二阶没有为0,三阶有为1,所以这三阶的输出就是101我的想法是以1为中心,向两边去找,用一个count标记小于等于阶数的个数,边界不合法break,遇到比阶数大的break,但是通过率0比如说我找3阶,1的左边是5,5>3,所以左边的搜索到此为止,1<3,count++,继续,右边3不大于3,count++,继续搜索,2<3,count++,继续,6>3,break,最终count=3=阶数,那么存在3阶完美序列唉,还是算法题做得不够,小菜狗只能到这个程度了,欢迎大佬评论区指点!!!!!
查看8道真题和解析
点赞
评论
收藏
分享
/feed/main/detail/c67ed2a866c1421b8fa1039958620936
昨天 15:28
门头沟学院 C++
得物 客户端开发-C++ 一面
1. TCP 和 UDP 的区别答案:TCP 是面向连接、可靠传输、字节流、有拥塞控制和流量控制的协议,适合对数据正确性要求高的场景。UDP 是无连接、不保证可靠、不保证顺序、报文边界天然保留,开销更小,时延通常更低。TCP 更像“把数据安全送到”,UDP 更像“尽快发出去”。如果继续往深里问,TCP 还会涉及三次握手、四次挥手、滑动窗口、重传、拥塞控制这些,而 UDP 常被拿来做实时通信、服务发现、音视频或自定义可靠传输。2. 什么场景下使用 UDP答案:UDP 适合更关注实时性、容忍少量丢包、需要自己掌控传输策略的场景。典型像音视频通话、在线游戏状态同步、局域网广播发现、DNS 查询、监控...
C++ 常考面试题总结
点赞
评论
收藏
分享
/discuss/868152680538042368
昨天 10:03
浙江大学 算法工程师
影石 | C++开发工程师 一面 面经
1. 自我介绍答:按"个人背景 → 核心技术栈 → 代表项目 → 求职意向"四段走,控制在2分钟以内。重点突出和影石岗位相关的经验,比如嵌入式Linux、音视频、IoT方向,不要把简历从头念一遍。结尾说一句为什么对影石感兴趣,体现你做过功课。2. C++中的深拷贝和浅拷贝有什么区别?什么情况下必须自定义拷贝构造函数?答:浅拷贝是按位复制,对于含有指针成员的类,两个对象会指向同一块内存,析构时会double free,这是典型的问题场景。深拷贝会为新对象重新分配内存并复制内容,两者完全独立。必须自定义拷贝构造函数的情况:类中有裸指针管理的堆内存;类持有文件描述符、socket...
C++八股文全集
点赞
评论
收藏
分享
/discuss/868070721199603712
03-27 20:49
已编辑
东北大学 嵌入式工程师
1.11 C++ STL
一、STL 容器序列容器:vector、list、forward_list、deque、array、string关联式容器(自动排序、基于红黑树):set、map、multiset、multimap无序关联式容器(基于哈希表):unordered_set、unordered_map、unordered_multiset、unordered_multimap适配器容器(是对其他容器的封装):stack、queue、priority_queue二、STL 算法 std::vector<int> v {1, 2, 3, 4}; auto it = std::find(v.begin(),...
C++/嵌入式开发 秋招...
点赞
评论
收藏
分享
/discuss/867110345083535360
昨天 15:20
门头沟学院 C++
若创科技 智驾系统工程师-C++ 一二面
1. 三个智能指针的区别答案:unique_ptr 表示独占所有权,同一时刻只能有一个拥有者,开销最小,适合对象边界非常明确的场景。shared_ptr 表示共享所有权,底层靠控制块维护引用计数,适合对象会被多个模块共同持有、释放时机不容易由单方决定的情况。weak_ptr 不拥有对象,只是观察 shared_ptr 管理的对象,主要作用是打破循环引用,或者在不延长对象生命周期的前提下做一次安全访问。真正写工程代码时,优先级一般是值对象 > unique_ptr > shared_ptr,而不是默认无脑上 shared_ptr。代码: #include <iostream&g...
C++ 常考面试题总结
点赞
评论
收藏
分享
/discuss/868150683000659968
03-29 07:26
浙江大学 算法工程师
大疆 | C++开发工程师 二面 面经
1. 介绍一个你主导的最复杂的项目,架构是怎么设计的,遇到的最难的技术问题是什么,怎么解决的?答:这道题是二面的开场,考察系统思维和技术深度,回答要有结构。建议按三段走:背景和目标(项目是什么、规模、你的角色)→ 架构设计思路(为什么这么分层、核心模块怎么划分、关键技术选型理由)→ 最难的问题(要具体,不能说"遇到了很多困难",要说清楚是什么问题、为什么难、排查过程、最终方案)。比如车载物联项目,可以说:系统需要同时管理30+种异构设备,设备协议差异大,所以设计了HAL抽象层屏蔽硬件差异,上层统一用设备模型操作;最难的问题是多设备并发上报状态时MQTT消息乱序,排查发现是Q...
C++八股文全集
点赞
评论
收藏
分享
/discuss/867669026103713792
03-27 17:18
东北大学 嵌入式工程师
1.10 C++ 面向对象(重头戏)
一、面向对象和面向过程区别 面向过程:强调过程的抽象化和模块化,以过程为中心处理客观世界问题。 面向对象:强调把解决问题的方法直接绑定到对象身上。二、 面向对象的基本特征有哪些? 抽象(抽象出共同的、本质的特征)、继承(基类与派生类)、封装(将数据和方法封装在一个类中,只提供一些公有接口来访问)、多态(相同方法在不同对象上的表现不同)。三、什么是深拷贝和浅拷贝 主要是针对指针成员变量来说的,深拷贝要求重新申请一段新的内存,将源对象指针所指向的内存内容拷贝到新对象中。浅拷贝就会简单的进行指针赋值。四、什么是友元 一些类会给成员以外的函数或类(即友元函数、友元类)提供访问、操作自身成员变量(包括私...
C++/嵌入式开发 秋招...
点赞
评论
收藏
分享
/discuss/867093021601320960
昨天 15:12
门头沟学院 C++
金山世游 客户端开发-C++ 一面
1. 自我介绍2. 如何理解继承、多态和封装,在什么场景下使用答案:封装的核心是把数据和行为收进对象内部,对外只暴露稳定接口,减少外部对实现细节的依赖。继承主要解决“共性抽取”和“接口复用”的问题,但它不应该被滥用成单纯的代码复用手段。多态的意义在于让同一套调用代码适配不同实现,比较适合行为抽象稳定、具体实现可扩展的场景,比如 UI 控件基类、资源加载器接口、渲染后端抽象、事件处理器体系。真正工程里,能不能用好多态,不在于会不会写 virtual,而在于抽象边界是否稳定。如果层次设计得不好,后面会很快出现基类臃肿、子类职责混乱的问题。代码: #include <iostream> ...
C++ 常考面试题总结
点赞
评论
收藏
分享
/discuss/868148595743125504
03-28 20:23
浙江大学 算法工程师
大疆 | C++开发工程师 一面 面经 拷打
1. C++对象模型中,虚函数表(vtable)的布局是怎样的?多继承时vtable如何组织?答:每个含有虚函数的类都有一张vtable,存放在只读数据段,表中按声明顺序存放虚函数指针。每个该类的对象头部有一个隐藏的vptr指向这张表。多继承时情况更复杂:对象内存中会有多个vptr,每个基类子对象对应一个。比如类C继承自A和B,C的对象布局是先放A的子对象(含A的vptr),再放B的子对象(含B的vptr)。C重写的虚函数会覆盖A那张表里对应的槽位,同时B那张表里也会有一个thunk(调整器),负责在调用时修正this指针偏移,再跳转到C的实现。这就是为什么多继承下虚函数调用有额外的this指...
C++八股文全集
点赞
评论
收藏
分享
/discuss/867501989213630464
03-27 16:55
东北大学 嵌入式工程师
1.9 C++ 四种类型转换
一、static_cast 最常用的普通类型转换。用于编译时进行类型转换,不进行运行时类型检查。可以进行向上转换(隐式,不必使用),也可以保证合法向下转换(但不一定安全,只是让编译器认为安全,安全由程序员来保证),但不允许无关转换。二、 dynamic_cast 运行时类型检查。主要用于向下转换,将基类指针/引用安全地转换为派生类指针/引用。在转换失败时返回 nullptr(指针)或抛出 std::bad_cast异常(引用)。成功条件:基类必须有虚函数,要不然不是多态;要转换的目标类型必须是对象的实际类型(或者是派生类型)。三、const_cast 可以消除 const 或 volatile...
C++/嵌入式开发 秋招...
点赞
评论
收藏
分享
/discuss/867087290223386624
昨天 15:01
门头沟学院 C++
脑虎科技 后端开发-C++ 一面
1. 什么是微服务答案:微服务可以理解成把一个庞大的单体系统,按业务能力拆成多个可独立开发、部署、扩缩容的小服务。每个服务通常围绕单一业务领域构建,有自己的代码仓库、部署单元,很多时候也会有自己独立的数据存储。服务之间通过 HTTP、RPC、消息队列等方式通信。它的重点不只是“拆小”,而是让不同模块能独立演进,减少大系统里发布牵一发动全身的问题。但微服务也不是天然更高级,它会把原来单体内部的问题变成分布式问题,比如网络超时、重试风暴、链路追踪、配置管理、数据一致性这些。2. 为什么要选用微服务,而不是继续维护单体架构答案:真正适合走微服务,通常是因为系统规模、团队规模和业务复杂度已经到了单体难...
C++ 常考面试题总结
点赞
评论
收藏
分享
/discuss/868145898864267264
03-27 09:09
浙江大学 算法工程师
京东 C++ 二面 面经
二面基本不扫知识面,每个问题都往深里挖,答完他会继续追问,感觉整场面试都在被拷问细节。项目聊了将近三十分钟,他对架构设计和性能优化特别感兴趣,问了很多"你当时有没有考虑过其他方案"和"这个方案的瓶颈在哪里"。1. 讲一下 C++ 的对象模型,一个含有虚函数的类,它的对象在内存里是什么布局?多继承时虚函数表是怎么组织的?答:一个含有虚函数的类,对象内存布局从低地址开始:首先是虚指针(vptr),占一个指针大小(64 位系统 8 字节),指向该类的虚函数表。然后是按声明顺序排列的成员变量,编译器可能在成员之间插入填充字节满足对齐要求。虚函数表是一个函数指针数...
C++八股文全集
点赞
评论
收藏
分享
/discuss/866969999762612224
03-27 16:50
东北大学 嵌入式工程师
1.8 C/C++ 虚函数 && 并行
一、纯虚函数是什么 形式:virtual 返回类型 虚函数名(形参表)= 0; 含有虚函数的类会变成抽象类,该类只能被继承而不能被实例化对象。纯虚函数永远不会被调用,主要是用来统一管理子对象。二、什么函数不能被声明为虚函数普通函数;静态成员函数;内联成员函数(内联函数是为了减少调用代价,而虚函数是为了多态,这两者之间矛盾,并且内联函数在编译的时候就已经展开);构造函数;友元函数三、C++中如何阻止一个类被实例化? 将类的成员函数写成纯虚函数,变成抽象类。四、std::thread(1)基本用法 1)创建线程:通过函数、Lambda 或成员函数创建线程: 关键点: 线程在构造时立即开始执行(无需...
查看10道真题和解析
点赞
评论
收藏
分享
/discuss/867086131840483328
03-28 23:54
门头沟学院 C++
网易 后端开发-C++ 一面
1. 自我介绍2. 智能指针了解什么,unique_ptr、shared_ptr、weak_ptr 分别适合什么场景答案:unique_ptr 表示独占所有权,一个资源同一时刻只能有一个拥有者,适合所有权非常明确的场景,开销也最小。shared_ptr 表示共享所有权,底层通过控制块和引用计数管理对象生命周期,适合多个对象共同持有同一资源的情况。weak_ptr 不增加强引用计数,主要用于观察 shared_ptr 管理的对象,典型作用是打破循环引用。真正写工程时,智能指针不是“哪里都能上”,本质还是要先把对象所有权设计清楚。shared_ptr 用多了,很多时候反而说明对象边界没设计好。代码...
C++ 常考面试题总结
点赞
评论
收藏
分享
/discuss/867555164809457664
玩命加载中
写面经
发动态
写文章
全站热榜
更多
写面经
发动态
写文章
牛客网
牛客网在线编程
牛客网题解
牛客企业服务