面试真题

技术面 + 非技术面高频问题 · 企业真题标题 + 校招宝自研参考答案
面试真题
2508 道
技术岗
641 道
非技术岗
1867 道
当前筛选
29 道

按赛道技术岗以技术方向细分;非技术岗按「结构化 / 半结构化 / 无领导 / HR / 职能」细分

按方向/形式点选即筛,再点「全部」还原

按难度

按企业点选查看该公司全部题目

分类:C++ · 难度:简单29 道 · 点击进入查看参考答案

简单C++
explicit` 的作用?
结论:explicit修饰C++构造函数,禁止隐式类型转换。原理:1.单参数构造函数默认允许隐式转换如A a=10;调用构造。2.加explicit后只能显式A a(10);阻止意外转换。3.提升类型安全,避免如bool…
🎤 百度
简单C++
if/switch中的初始化器
结论:C++17起支持if/switch初始化器,允许在条件前声明并初始化变量,其作用域仅限控制结构内部。原理:语法扩展为if (init; cond)和switch (init; cond),编译器先执行init再判断…
🎤 阿里巴巴
简单C++
map和unordered_map相关
结论:二者均为关联式键值容器,禁止重复key(multimap允许),主要差异在底层与有序性。核心要点:map以红黑树实现,迭代器遍历得到升序序列,查找稳定O(log n);unordered_map以哈希桶实现,遍历顺…
🎤 腾讯
简单C++
map可以寻址吗?
结论:map不支持像数组那样的常数时间随机寻址(按整数下标访问),但提供按键查找的operator[]。原理:map底层红黑树节点分散在堆上,内存不连续,仅提供双向迭代器而非随机访问迭代器,因此不能通过索引直接跳转;op…
🎤 Momenta
简单C++
new和malloc的区别?
结论:new是C++运算符,malloc是C标准库函数,二者在类型、构造、失败处理等方面不同。要点:1.new自动计算所需内存大小并返回对应类型指针,malloc需显式传入字节数且返回void*需强转;2.new分配内存…
🎤 美团
简单C++
std::sort 使用了哪种排序算法?
结论:std::sort通常实现为内省排序(introsort),混合快速排序、堆排序和插入排序。原理:1. 先以快排递归分区;2. 当递归深度超过2*log2(N)时改用堆排,避免快排最坏O(N^2);3. 数据量小(…
🎤 金山
简单C++
关键字override,final的作用
结论:C++中override显式标记函数重写基类虚函数,编译器强制检查签名匹配;final修饰类阻止继承,修饰虚函数阻止进一步重写。原理:override是上下文关键字,用于编译期多态检查,若未真正重写则报错;fina…
🎤 腾讯
简单C++
C++ 编译过程(四个阶段)
结论:C++编译分为预处理、编译、汇编、链接四个阶段。核心要点:预处理处理#指令,展开宏、包含头文件、条件编译,生成.i文件;编译将预处理代码进行词法、语法、语义分析及优化,翻译成汇编代码生成.s文件;汇编把汇编指令逐条…
🎤 百度
简单C++
vector和array的区别
结论:array是编译期固定大小的栈数组封装,vector是运行时动态大小的堆数组。核心要点:1. 大小:array<T,N>大小N编译确定不可变;vector可动态resize;2. 内存:array通常在栈(或全局区…
🎤 Momenta
‹ 上一页第 2 / 2 页
题目整理自公开面经,答案由校招宝自研生成,仅供参考