📡
首页
🏢
企业
📚
考试
📖
攻略
📰
日报
👤
我的
校招宝-应届生校园招聘情报站
聚合秋招/春招/实习/提前批
面试真题
技术面 + 非技术面高频问题 · 企业真题标题 + 校招宝自研参考答案
面试真题
2508 道
技术岗
641 道
非技术岗
1867 道
当前筛选
85 道
按赛道
技术岗以技术方向细分;非技术岗按「结构化 / 半结构化 / 无领导 / HR / 职能」细分
全部赛道(2508)
技术岗(641)
非技术岗(1867)
按方向/形式
点选即筛,再点「全部」还原
全部(641)
数据库(114)
C++(85)
Go(82)
Java(69)
网络(65)
操作系统(54)
后端(39)
前端(37)
算法(31)
运维(22)
其他(17)
AI算法(13)
大数据(6)
测试(4)
产品(2)
Python(1)
按难度
简单(29)
中等(52)
困难(4)
按企业
点选查看该公司全部题目
百度(161)
腾讯(139)
通用(87)
阿里巴巴(62)
网易(55)
京东(49)
中国储备粮管理集团有限公司(43)
字节跳动(34)
大华股份(11)
美团(10)
Momenta(8)
小鹏汽车(8)
深信服(8)
Shopee(7)
小米(7)
拼多多(7)
滴滴(7)
虎牙(6)
读书郎(6)
金山(6)
小红书(5)
快手(5)
搜狐(5)
闪送(5)
技术岗 · 分类:C++
85 道 · 点击进入查看参考答案
简单
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
中等
C++
多态+内存对齐
结论:多态通过虚函数表实现运行时动态绑定,内存对齐以空间换时间提升访问效率。核心要点:1.多态:基类含虚函数时对象含vptr指向vtable,调用虚函数按实际对象类型查表;纯虚函数定义接口。2.内存对齐:编译器按成员大小…
🎤 网易
中等
C++
非虚函数和虚函数的调用原理
非虚函数与虚函数核心在绑定时机与机制:1.非虚函数:编译期静态绑定,编译器根据调用者的静态类型直接确定函数入口地址,生成call指令跳转到固定地址;不依赖对象运行时类型,无多态。2.虚函数:运行期动态绑定,每个含虚函数的…
🎤 ToDesk
中等
C++
构造函数抛出异常的问题
结论:构造函数抛异常表示对象创建失败,C++会逆序析构已构造的基类与成员,但对象本身不会调用析构。要点:1)栈对象:编译器自动清理已初始化成员(如string);2)堆对象:new失败不返回指针,但构造函数体内裸资源分配…
🎤 百度
中等
C++
简述智能指针种类以及使用场景
结论:C++智能指针主要有unique_ptr、shared_ptr、weak_ptr。unique_ptr独占所有权,不可拷贝只能移动,适用单一所有者资源管理;shared_ptr引用计数,多指针共享对象,计数为0释放…
🎤 小米
中等
C++
请简述C++类型推导用法
结论:C++类型推导用于简化代码,通过auto、decltype和模板推导自动确定类型。核心要点:auto从初始化表达式推导变量类型,如auto x = 5;推导为int;decltype推导表达式类型而不计算,保留引用…
🎤 京东
中等
C++
请简述function,lambda,bind之间的关系
结论:std::function是通用函数包装器,lambda是匿名闭包,bind用于参数绑定,三者实现可调用对象统一。要点:lambda就地定义,编译器生成轻量functor,高效;std::function类型擦除可…
🎤 网易
中等
C++
如果让你实现菱形继承,你怎么做?
使用虚继承解决菱形继承的二义性和数据冗余。核心要点:在中间基类继承顶层基类时加virtual关键字,使顶层基类子对象在最终派生类中只有一份;非虚继承会导致两份基类成员,访问时产生二义性;虚继承通过虚基类表指针共享同一实例…
🎤 京东
中等
C++
如何定义只能在堆上生成对象的类
将析构函数设为private或protected并提供静态工厂方法,禁止栈上分配。核心要点:栈对象离开作用域需调用析构,若析构私有则编译报错;堆对象由delete显式调用,可在类内静态方法或友元中访问私有析构;也可将构造…
🎤 字节跳动
中等
C++
手撕 std::vector
结论:std::vector是连续内存动态数组,手撕需实现内存管理、扩容和常用接口。核心要点:1. 内部维护起始指针data、大小sz、容量cap;2. 构造可分配cap空间,析构释放;3. push_back:若sz=…
🎤 拼多多
中等
C++
手撕 unique_ptr
结论:unique_ptr是独占所有权智能指针,手撕需实现移动语义并禁止拷贝。核心要点:1. 内部持有裸指针T* ptr和删除器(默认delete);2. 析构调用删除器释放资源;3. 禁用拷贝构造和拷贝赋值(=dele…
🎤 字节跳动
中等
C++
手撕有界环形队列
结论:用固定数组+头尾索引+计数实现有界环形队列,支持入队出队且满时拒绝。核心要点:1)成员含数组buf、容量cap、头head、尾tail、大小sz;2)入队若sz<cap则buf[tail]=x, tail=(tai…
🎤 腾讯
‹ 上一页
第 2 / 5 页
下一页 ›
题目整理自公开面经,答案由校招宝自研生成,仅供参考
首页
企业
考试
攻略
日报
我的