2023.5.30 深信服 c++ 一面

news2025/1/12 8:39:46

深信服,c++一面小记

  • 导语
  • 面试内容
  • 重点问题解析
    • 弱引用弱在哪里?
    • 手撕memcpy
    • 水壶倒水问题

导语

  最近开始面试,记录一下面试经历。
  应该是会给我发感谢信的吧~我也是真的菜。工作的原因其实也没时间准备,最近工作还是挺忙的。另外一个是在公司面试的,也挺紧张的。也是第一次面试,发挥不太好。
  另外一个感觉深信服和我还真是有缘无份啊。实习的时候面试的第一家就是深信服,啥都不懂直接挂掉。时隔多年,深信服又是我第一个面试的公司~~~

面试内容

   自我介绍?
   c++和c语言的区别
   做的最难的项目是什么,遇到什么困难,怎么克服的?
   周末一般干点什么?
   说说对c++智能指针的理解。讲讲弱指针弱在哪里?
   平时一般几点下班?
   手撕代码一:实现memcpy
   手撕代码二:给定两个水壶,一个可以装4升水,一个能装3升水,水壶上没有任何度量标记。有一水龙头可以用来往壶中灌水。问题是怎样在能装4升的水壶里面恰好只装2升水。

重点问题解析

弱引用弱在哪里?

  回答到了weak_ptr时,面试官问弱引用为何弱?弱引用就弱在它不具有对象的所有权,它只是能够安全地访问对象,但是不会去影响到对象的引用计数。

手撕memcpy

  主要就是需要考虑一个内存重叠的情况。在dst>src,且两部分内存有重叠的时候,我们如果从前向后对元素进行拷贝,会出现问题。所以不管dst>=src有没有重叠的时候,我们都从前向后进行拷贝就可以了。
在这里插入图片描述

void my_memcpy(void* dest, void* src, size_t count) {
    if (dest == src) {
        return;
    }
    char* pDest = static_cast<char*>(dest);
    char* pSrc = static_cast<char*>(src);
    if (pDest < pSrc) {
        for (size_t i = 0; i < count; ++i) {
            *(pDest + i) = *(pSrc + i);
        }
    }
    else {
        for (size_t i = count; i > 0; --i) {
            *(pDest + i - 1) = *(pSrc + i - 1);
        }
    }
}

水壶倒水问题

其实就是leetcode 365题。当时真的没有见过,现场又紧张,没做出来。看了leetcode 365题,感觉还挺难的,要我没见过的话,面试的时候我真的做不出来

具体题解直接看Leetcode365的解答吧,两种方法,一种遍历,一种数学方法。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【云原生docker】

容器化越来越受欢迎&#xff0c;因为容器是&#xff1a; ●灵活&#xff1a;即使是最复杂的应用也可以集装箱化。 ●轻量级&#xff1a;容器利用并共享主机内核。 ●可互换&#xff1a;可以即时部署更新和升级。 ●便携式&#xff1a;可以在本地构建&#xff0c;部署到云&#…

LVGL学习(2):图片的转换和显示

我们在设计UI的过程中可能需要显示一些图片&#xff0c;本篇文章将介绍如何转换并显示一个固定的图片到lv_img中。 文章目录 1 图片转换1.1 GUI Guider1.2 在线转换 2 图片的显示 1 图片转换 和之前我写的一篇字体转换的文章一样&#xff1a;LVGL学习(1)&#xff1a;中文字体…

基于牛顿拉夫逊的配电网潮流计算研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

C++语法(23)-- 模拟实现unordered_set和unordered_map

C语法&#xff08;22&#xff09;---- 哈希表的闭散列和开散列_哈里沃克的博客-CSDN博客https://blog.csdn.net/m0_63488627/article/details/130436178?spm1001.2014.3001.5501 1.重写HashTable 由于此时我们的实现与map跟set差不多&#xff0c;所以需要进行调整 1.重写节点…

html5前端学习

HTML5基本骨架 html标签 定义HTML文档&#xff0c;浏览器看到后就明白这个是HTML文档&#xff0c;所以其他元素要包裹在它里面&#xff0c;标签限定了文档的开始点和结束点。 <!DOCTYPE html> <html> </html> head标签 head标签用于定义文档的头部&…

实验篇(7.2) 05. 通过浏览器访问远端内网服务器 (SSL) ❀ 远程访问

【简介】直接将内网服务器映射成公网IP&#xff0c;可以方便的从任何地方访问服务器的指定端口&#xff0c;但是这种方式下&#xff0c;服务器是公开且暴露的。那有没有即方便、又比较安全的远程访问服务器的方法呢&#xff1f;我们来看看SSL VPN的Web模式。 SSL VPN介绍 从概念…

波司登云原生微服务治理探索

作者&#xff1a;曾孟琪&#xff08;山猎&#xff09; 背景 波司登创始于1976年&#xff0c;专注于羽绒服的研发、设计、制作&#xff0c;是全球知名的羽绒服生产商。波司登用一系列世人瞩目的辉煌成绩证明了自己的实力&#xff1a;连续26年全国销量领先&#xff0c;连续22年…

4种事务隔离级别 3种异常现象 死锁

4种事务隔离级别 & 3种异常现象 4种事务隔离级别和3种异常现象 事务隔离级别是指多个并发事务之间相互隔离的程度&#xff0c;用于控制事务对数据库的读取和写入操作的可见性和影响范围。在关系数据库管理系统&#xff08;RDBMS&#xff09;中&#xff0c;常见的事务隔离…

70. 爬楼梯解题思路

文章目录 题目解题思路 题目 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f; 示例 1&#xff1a; 输入&#xff1a;n 2 输出&#xff1a;2 解释&#xff1a;有两种方法可以爬到楼顶。 1 阶 …

【原创】用 VisualGLM 进行AIGC多模识别和内容生成

最近几个月&#xff0c;整个AI行业的LLM&#xff08;大语言模型&#xff09;蓬勃发展&#xff0c;除了过去传统的纯文字的多模态能力的视觉语言模型&#xff0c;如 GPT-4&#xff0c;ImageBind等表现令人印象深刻。 ChatGLM-6B是中文用户使用非常舒服的一个开源中文LLM。2023年…

Nginx的Rewrite的运用

Rewrite 一、常用的Nginx正则表达式二、lication三、rewrite$request_uri&#xff1a;包含请求参数的原始URI&#xff0c;不包含主机名&#xff0c;如&#xff1a;http://www.kgc.com/abc/bbs/index.html?a1&b2 中的 /abc/bbs/index.php?a1&b2 $uri&#xff1a;这个变…

chatgpt赋能python:Python去除重复字符并排序

Python去除重复字符并排序 在日常编程工作中&#xff0c;我们常常需要对列表或字符串中的重复字符进行去除&#xff0c;并将剩余字符进行排序。Python是一门非常适合进行此类操作的语言&#xff0c;其内置的数据结构和函数可以让我们轻松应对这一需求。 介绍 当我们需要对一…

【六一】【海思SS528】GPIO寄存器操作 - 使能GPIO管脚输出高、低电平

目录 一、概述二、配置复用控制寄存器&#xff0c;使能GPIO功能三、配置GPIO_DIR寄存器&#xff0c;选择输出四、配置GPIO_DATA寄存器&#xff0c;输出高电平五、测试 一、概述 这篇文章根据海思SS528芯片提供的《22AP30 H.265编解码处理器用户指南.pdf》文档(文档路径&#xf…

MIT6.042学习笔记(一)——强归纳法,数论(1)

如果学生在学校里学习的结果是使自己什么也不会创造&#xff0c;那他的一生永远是模仿和抄袭。——列夫托尔斯泰 文章目录 引言强归纳法例题&#xff1a;拆积木游戏证明 数论&#xff08;第一节&#xff09;整除运算例题&#xff1a;取水证明 公约数例题证明 Eucild算法 引言 …

C语言-static的用法

1、static 关键字 C 语言中 static 关键字修饰变量和函数。 static有三种不同的用法&#xff1a; 1.修饰局部变量&#xff1b; 2.修饰全局变量&#xff1b; 3.修饰函数 局部变量:当函数第一被调用&#xff0c;函数中的静态局部变量被初始化&#xff0c;再次调用这个函数&…

gcc/g++

文章目录 sudo 提权添加白名单gcc / g预处理编译汇编链接 sudo 提权添加白名单 1.寻找root用户 在 /etc/sudoers 文件中修改 添加普通用户的白名单 :/root找到root的白名单所在行数 2.wq!强制保存退出&#xff0c;即可添加成功 gcc / g 推荐写法 gcc mycode.c -o mytest预…

Python绘制柱状图堆叠图

本文详细介绍如何使用 Matplotlib 绘制柱状堆叠图 文章目录 一、引入库二、数据准备三、绘制基本柱状堆叠图1.绘制基本图形2.设置柱子宽度、添加刻度标签和旋转角度 四、完整代码五、运行结果六、python绘图往期系列文章目录 一、引入库 import matplotlib.pyplot as plt imp…

Hyperledger Fabric 超级账本学习【14】Fabcar实例——通过 Nodejs命令 调用链码

文章目录 Hyperledger Fabric2.X 网络 以后对应的 Node Npm 版本需要升级&#xff0c;默认版本太低&#xff0c;后面会报错启动 Fabcar 网络报错运行以下命令来杀死当前运行或者活跃的容器&#xff1a;清除所有缓存网络&#xff1a;添加映射文件进入javascript目录在此文件夹内…

初阶数据结构(7)(树形结构的概念和相关重要定义、树的表示形式、树的应用、二叉树【两种特殊的二叉树、性质、存储、遍历、基本操作、二叉树相关的 OJ 题】)

接上次博客&#xff1a;初阶数据结构&#xff08;6&#xff09;&#xff08;队列的概念、常用的队列方法、队列模拟实现【用双向链表实现、用数组实现】、双端队列 (Deque)、OJ练习【用队列实现栈、用栈实现队列】&#xff09;_di-Dora的博客-CSDN博客 目录 树形结构的概念 …

DPDK官方文档说明

目录 1、Release Notes 2、Getting Started Guide for Linux/FreeBSD/Windows 3、Programmer’s Guide 4、API Reference 5、Sample Applications User Guide 6、DPDK Tools User Guides 7、Testpmd Application User Guide 8、Network Interface Controller Drivers …