码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 2023.5.30 深信服 c++ 一面


    深信服,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);
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    水壶倒水问题

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

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

  • 相关阅读:
    【黑马头条之项目部署_持续集成Jenkins】
    Scratch、Python、C++,谁才是少儿编程的第一选择?
    alsa pcm设备之設置软件相关参数
    区块链的认识
    如何实现一个规则研究区域内数据的提取(matlab)
    从零开始 Spring Boot 16:枚举
    事件抽取(and 检测)经典论文
    Vue3.0——Vue3简介、Vue3带来了什么、拥抱TypeScript、新的特性、Vue3.0环境集成
    【深度学习】——损失函数(均方差损失和交叉熵损失)
    R语言检验时间序列中是否存在自相关性:使用box.test函数执行box-pierce检验验证时间序列中是否存在自相关性
  • 原文地址:https://blog.csdn.net/weixin_41937380/article/details/130959205
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号