《C++工程方向面试记录》

        此系列,是本人免费提供的,大厂面试模拟,经本人同意后发出。如要申请,请查看《大厂面试模拟(免费)》


面试者画像

        本硕中部985,工作2-3年,本硕均非计算机专业。毕业后一直在某研究所工作。项目经历主要面向国家项目,即项目为处理数据量不大,更偏向于模块多,链路长。

个人倾向的考核方向

  • 重点是基础Code能力、C++相关基础、对自己最熟悉的项目的理解程度
  • 加分项是如果有足够的时间,考察对性能优化,以及分布式系统的理解

部分实际问答

  • 1、
    • 问:mutable关键字的作用
    • 答:“只记得和类相关,但是没用过,不太记得请了”
  • 2、
    • 问:constexpr关键字的作用
    • 答:“编译时计算,这是c++11的特性”
  • 3、
    • 问:既然说到c++11的特性,那说下std::move的作用
    • 答:“移动语义,能够减少内存拷贝”
    • 问:是对所有类都支持的吗
    • 答:“应该是”
    • 问:减少拷贝的动作,是谁支持的。是三方库,还是编译器,还是内核
    • 答:“不太清楚”
    • 问:std::forward的作用是什么
    • 答:“完美转发”
    • 问:具体解释下,什么是完美转发,为什么需要完美转发
    • 答:“应该是在模板中用的,但是比较少用,记不清了”
  • 4、
    • 问:写一段代码,找到二叉树的从根节点到叶子节点的最大代价的路径。如下图,输入时一个根节点指针,需要返回一个数组。
    • 答:写代码过程,整个过程持续20分钟:
      • 1、第一遍写完,递归返回条件不对。提示后修改
      • 2、修改后,代码时间复杂度为O(nlogn),提示后修改为O(n)

  • 5、
    • 问:介绍一个你最熟悉的项目
    • 答:“xxx的无人小车,自己负责建图相关模块”
    • 问:建图如何做的
    • 答:“知道车辆实时gps位置,知道每个时间点,所拍到的真实世界的相对坐标,转换为绝对坐标,再把各个世界点拼接在一起”
    • 问:既然基于gps位置,那gps位置不对会影响作图,做出来的图会有阴影,怎么解决的
    • 答:“有遇到过,其他同事尝试过SLAM,虽然没有很好解决,但是有更大的问题,是障碍物识别,所有这块没有再尝试,因为在大部分情况下够用”
    • 问:建图模块做好后,如何评价图的质量,有哪些指标
    • 答:“没有做个图的质量评价,基本是做完,在环境里面试一试,能跑就行”
  • 6、
    • 问:我看你有一些熟悉项,是写的多线程、分布式相关的,这块平时用的多吗
    • 答:“自学,但是也了解一些,平时偶尔会用”
    • 问:那说说多线程同时读一个数据,需要加锁吗
    • 答:“不太清楚,我一般使用的时候会加上”
    • 问:为什么需要条件变量
    • 答:“配合互斥锁使用”
    • 问:对,详细再说下,怎么配合使用,为什么有了互斥锁,还需要条件变量
    • 答:“不太记得了”
    • 问:那说下智能指针线程安全吗
    • 答:“不太清楚,不过我在多线程使用时,会加上锁”
  • 7、
    • 问:平时工作时,有关注过自己写的模块的性能吗,如何发现程序性能还有优化点,如何优化程序性能
    • 答:“一般就是再review代码,确实没有做过太多性能优化的事情”
  • 8、
    • 问:分布式系统的里面我看你的简历里面写了一些,平时应该是很少用,是通过什么途径学习的
    • 答:“主要是通过博客,然后通过一些视频自学过”
    • 问:那说说线性一致性、顺序一致性、因果一致性、最终一致性的区别
    • 答:“最终一致性了解过,应该是说明系统在一段时间过后,数据会达到一致,其他不太清楚”
    • 问:那对于流式系统,请求在不停地来,不停地处理,如何去评价它是否具有最终一致性呢
    • 答:“不太清楚”

个人主观评价和建议

  • 面试评价:
    • 优点:
      • 有一定学习能力,基本知道自己的知识边界
      • 沟通顺畅,表达清晰
      • 提示下能写完,时间复杂度最优的Code
    • 待改进:
      • 语言基础略薄弱
      • 项目经历略简单,且对自己项目的各个模块、上下游链路理解不深
      • 多线程、分布式相关知识薄弱
    • 未问到的领域(未在简历中写熟悉):
      • 数据库、操作系统
  • 建议:
    • 首先是C++语言相关基础需要补充,至少在关键字以及类的使用方面要熟悉
    • 然后是当前所作的项目要在深入理解,至少上下游,当前不足和未来规划要清晰
    • 然后建议在实践中补充操作系统+多线程相关知识和经验,这样在单机的c++开发方面就很让人放心了
    • 最后,对于数据库、分布式相关知识,可以考虑暂缓,有时间的话,把前三项夯实,对跳槽可能更有用。这两块,建议去新的环境中学习

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/504989.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

南京观海微电子---Vitis HLS设计流程介绍——Vitis HLS教程

1. 传统的FPGA设计流程 传统的RTL设计流程如下图所示: 传统的FPGA RTL设计流程主要是采用VHDL、VerilogHDL或System Verilog进行工程的开发,同时也是通过硬件描述语言来编写测试案例(Test Bench)对开发的工程进行仿真验证。 随后…

SpringBoot接收参数的方式

Get 请求 1.1 以方法的形参接收参数 1.这种方式一般适用参数比较少的情况 RestController RequestMapping("/user") Slf4j public class UserController {GetMapping("/detail")public Result<User> getUserDetail(String name,String phone) {log.…

二维码门楼牌管理应用平台建设:实现民主参与的新途径

文章目录 前言一、二维码门楼牌管理应用平台的兴起二、投票表决功能的实现三、居民参与度的提升四、面临的挑战与前景展望 前言 在数字化时代&#xff0c;二维码技术的应用已经渗透到我们生活的方方面面。近期&#xff0c;二维码门楼牌管理应用平台的建设成为了社区治理的一大…

leecode 331 |验证二叉树的前序序列化 | gdb 调试找bug

计算的本质是数据的计算 数据的计算需要采用格式化的存储&#xff0c; 规则的数据结果&#xff0c;可以快速的按照指定要求存储数据 这里就不得不说二叉树了&#xff0c;二叉树应用场景真的很多 本题讲的是&#xff0c;验证二叉树的前序序列化 换言之&#xff0c;不采用建立树的…

Kubernetes(K8S)学习(二):K8S常用组件

K8S常用组件 一、 Controllers1、ReplicationController(RC)2、ReplicaSet(RS)3、Deployment 二、Labels and Selectors三、Namespace&#xff08;命名空间&#xff09;1、简介2、测试2.1、创建namespace2.2、创建pod 四、Network1、集群内&#xff1a;同一个Pod中的容器通信2、…

数据挖掘|贝叶斯分类器及其Python实现

分类分析|贝叶斯分类器及其Python实现 0. 分类分析概述1. Logistics回归模型2. 贝叶斯分类器2.1 贝叶斯定理2.2 朴素贝叶斯分类器2.2.1 高斯朴素贝叶斯分类器2.2.2 多项式朴素贝叶斯分类器 2.3 朴素贝叶斯分类的主要优点2.4 朴素贝叶斯分类的主要缺点 3. 贝叶斯分类器在生产中的…

力扣刷题Days29-第二题-70.爬楼梯(js)

只有学习&#xff0c;没有自己的思路解题哈哈哈 1&#xff0c;题目 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f; 2&#xff0c;代码 这种解法的本质是斐波那契数列 /*** param {number} n* re…

关于积分敛散性的这道考研数二真题,好多辅导资料都没有讲清楚!

考研数学二 2024 年真题的第 7 题是关于积分敛散性判别的&#xff0c;但是&#xff0c;细心的同学会发现&#xff0c;对于这道题目&#xff0c;某些考研机构给出的解析资料其实并没有讲清楚具体解题方法&#xff0c;甚至还存在错误&#xff0c;有关这道题目的详细解析&#xff…

分布式数据库技术的演进和发展方向

前言 这些年大家都在谈分布式数据库&#xff0c;各大企业也纷纷开始做数据库的分布式改造。那么&#xff0c;所谓的分布式数据库到底是什么&#xff1f;采用什么架构&#xff1f;优势在哪&#xff1f;为什么越来越多企业选择它&#xff1f;分布式数据库技术会向什么方向发展&a…

区块链+AI,AG与Speedy联合Sui为收藏品打造数字身份

Speedy Comics&#xff08;PopCon Me的制片方&#xff09;和AGS&#xff08;一家由AI驱动的收藏品认证服务提供商&#xff09;将利用Sui来安全地托管证书&#xff0c;以证明验证过的流行文化收藏品的所有权和起源。从稀有的宝可梦卡到星球大战道具的收藏品&#xff0c;购买者可…

【分布式事务】Seata 简介

文章目录 1.分布式事务解决方案之两阶段提交协议2.Seata 简介&#xff08;两阶段提交协议的演变&#xff09;3.Seata 术语 1.分布式事务解决方案之两阶段提交协议 2PC&#xff0c;即两阶段提交协议&#xff08;Two-Phase Commit&#xff09;&#xff0c;是分布式系统中保证事务…

拦截器未生效的问题

记录一下自己出现的一个问题 配置好拦截器后 protected void addInterceptors(InterceptorRegistry registry) {log.info("开始注册自定义拦截器...");registry.addInterceptor(jwtTokenUserInterceptor).addPathPatterns("/**").excludePathPatterns(&q…

机器学习周记(第三十三周:文献阅读-时空双通路框架)2024.3.25~2024.3.31

目录 摘要 ABSTRACT 1 论文信息 1.1 论文标题 1.2 论文摘要 1.3 论文模型 1.3.1 Spatial Encoder&#xff08;空间编码器&#xff09; 1.3.2 Temporal Encoder&#xff08;时间编码器&#xff09; 2 相关代码 摘要 本周阅读了一篇运用GNN进行时间序列预测的论文。论文…

【论文阅读】UniLog: Automatic Logging via LLM and In-Context Learning

注 由于其公司的保密政策&#xff0c;本文没有公开源代码&#xff0c;数据是公开的。 文章目录 摘要一、介绍二、背景和动机2.1、日志语句生成2.2、大语言模型2.3、上下文学习&#xff08;In-Context Learning&#xff0c;ICL) 三、UNILOG3.1、模型骨干3.2、提示策略3.2.1、提…

大龄程序员的2024年3月总结:鸿蒙,发起GDE申请,金石计划获奖,月榜,技术文章

大家好&#xff0c;我是老A&#xff0c;一名工作十年的安卓开发&#xff1b; 又到了月末写总结的时候了&#xff0c;看过我文章的朋友应该会发现我没有写2月的总结&#xff0c;因为2月有春节假期&#xff0c;2月大部分时间都是在假期中度过的&#xff0c;所以就没有写2月总结&…

瓷砖通铺选择亮面还是哑光?了解这6点不难选。福州中宅装饰,福州装修

选择瓷砖通铺亮面还是哑光&#xff0c;可以从多个角度来考虑&#xff1a; ①空间感觉 亮面瓷砖通常会使空间看起来更加宽敞和明亮&#xff0c;而哑光瓷砖则给人大气、稳重的感觉。如果希望让空间显得更加宽敞&#xff0c;亮面瓷砖是一个不错的选择。 ②清洁与维护 亮面瓷砖更…

KNN算法 | K近邻:KD Tree、球树、KNN数据下采样策略

目录 一. KNN算法实现方式1. 蛮力实现(brute)2. KD树(kd_tree)3. 球树(ball_tree) 二. KD Tree算法1. 构建方式2. KD Tree 查找最近邻 三. 球树(Ball Tree)1. 构建方式 四. KNN评价1. 优点2. 缺点 五. 延申1. KNN数据下采样策略策略1策略2策略3策略4 Condensed Nearest Neighbo…

loadbalancer 引入与使用

在消费中pom中引入 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-loadbalancer</artifactId> </dependency> 请求调用加 LoadBalanced 注解 进行服务调用 默认负载均衡是轮训模式 想要切换…

OpenStack部署

目录 一、安装环境 1.无网络使用该命令 2.修改主机名 3.配置hosts解析 4.配置本机免密 5.关闭防火墙和SElinux策略 6.关闭NewworkManager 7.修改yum源 7.1下载阿里源 7.2清空并加载缓存yum源 8.安装基本工具 9.系统升级 10.安装OPenStack的yum仓库 11.修改OPenSt…

Verilog语法之assign语句学习

assign语法主要是对组合逻辑的变量进行赋值的&#xff0c;就是把一个变量赋值给另一个变量&#xff0c;被复制的变量必须是wire类型的参数。 从仿真结果可以看出&#xff0c;data_in变量的值赋值给了data_out,assign语法就是赋值没有任何延迟&#xff0c;data_in是什么值&#…