• 小米C++面经

    1、include " " 和<> 区别

    include< file >编译程序会标准函数库中找文件

    include”file” 编译程序会当前目录中找文件

    include语句一般用来包含标准头文件(例如stdio.h或stdlib.h),因为这些头文件极少被修改,并且它们总是存放在编译程序的标准包含文件目录下。#include“file”语句一般用来包含非标准头文件,因为这些头文件一般存放在当前目录下,你可以经常修改它们,并且要求编译程序总是使用这些头文件的最新版本。

    https://blog.csdn.net/weixin_36571185/article/details/78240931

    2、static,static局部变量?生命周期?static关键字(全局,局部,成员变量,成员函数)

    3、extern  externC

    4、inline

    5、堆和 栈区别

    6、new malloc 区别

    7、进程线程区别

    8、进程间通信

    9、一道手撕算法题  平衡数

    好像是一个整数   前半部分的数字相加和后半部分的数字相加 是与一样的 比如 1 2 2 1  这种

    10、析构函数为什么要用virtual修饰?

    11、多态 说了静态多态和动态多态,虚函数表和虚函数指针)

    12、谈一下智能指针?

    13、不想让别的对象访问本类,应该怎么做?然后自己怎么访问的?(答:将构造函数设置成private,然后将定义一个static 函数用来访问私有的构造函数)

    14、基类、派生类调用构造函数、析构函数的顺序,以及一些访问权限问题。

    15、熟悉的数据结构吗?然后写一个二叉树的后序遍历,递归,非递归。

    16、给一个数组,输出最长的连续数字子串。(一直优化)

    17、协程了解过么?

     协程是更轻量级的线程。用于解决线程间切换和进程间切换的通病(对内核开销过大),协程各个状态(阻塞、运行)的切换是由程序控制,而不是内核控制,减少了开销。

    功能特点:通过应用层程序,记录上下文栈区,实现在程序执行过程中的跳跃执行。由此可以选择不阻塞的部分执行提升运行效率。

    18、写代码,链表的插入与删除的题目

    https://www.nowcoder.com/discuss/256913?type=post&order=time&pos=&page=1

    19、Cpp和C区别,各自的特点

    20、C可以做应用程序吗(菜鸡竟然回答的不知道。。。答案是肯定的。。。)

    21、知道回调函数吗

    22、单例模式有用到过吗

    23、C 中为什么要加STL,它的特点,优点

    24、经常用到的字符串的函数,标准的

    25、你知道可重入函数吗,怎么实现的可重入,你知道static关键字吗,它和可重入有什么关系

    26、volotile关键字你知道吗

    27、结构体大小计算你知道吗

    28、项目中有用到过多线程吗,多线程是自己写的吗,多线程相关的调用接口有哪些

    29、定义一个数组A[10],不允许定义其他变量,通过指针方式取出第一个元素(感觉有坑,应该是想问数组名和指针的区别?)

    30、二级指针有了解过吗,二级指针存储的内容

    31、讲一讲常见的数据结构

    32、队列有用到吗(对vector比较熟,,,那你讲一下吧)

    33、你上学的过程中有学到数据结构这门课吗?知道图吗?

    34、说一下单链表反转的思路

    35、树的遍历方式有那些

    36、怎么计算二叉树的深度

    37、操作系统有学过吗,你知道生产者消费者模型吗?

    38、你知道TCB吗?

    39、说一下死锁,怎么避免死锁(不知道。。。)

    40、你知道同步互斥吗

    41、进程间通信了解吗

    42、给你出一个编程题,算阶乘

    43、驱动代码你有了解过是吗(没有!)

    44、你有没有觉得计算机相关的书籍里哪些比较重要,有看过哪些书说一下

    45、Python用过哪些比较多的模块/包

    46、讲一下python里面的字典

    47、期望工作地点

    48、说一下同步异步

    49、多线程怎么保证数据安全,除了加锁还知道那些

    50、项目遇到困难怎么解决

    51、Linux用户态内核态有了解过吗

    52、对小米的了解

    53、C++特性

    54、有几种锁

    55、操作系统堆和栈什么区别

    56、排序算法知道哪些,介绍一下 时间复杂度

    57、为什么要加锁

    58、C++,多线程

    https://www.nowcoder.com/discuss/244500?type=post&order=time&pos=&page=1

    59、进程通信,线程同步(说了同步和通信方式后说了生产者消费者)

    60、哈夫曼压缩(举了一个例子)

    61、介绍二叉树(讲了二叉树,AVL树)

    62、Linux的gcc(四个过程以及每一步的指令)

    63、QT的信号槽(connect函数)

    64、为什么有malloc还要有new(往它们的区别上答)

    65、单例模式

    66、三次握手和四次分手

    67、栈逆序递归

    68、手撕循环队列

    69、linux检测内存使用情况;

    70、linux查看系统的常用命令

    71、socket服务端建立过程

    72、红黑树插入、红黑树的用途(红黑树没怎么看,旋转那一块没答上来);

    73、两道编程:二叉树镜像、集合的所有子集;

    74、堆排

    75、统计逆序对个数

    剑指offer上利用归并的思想将原序列分成前后两个序列,分别统计两个序列中的逆序对个数,再统计两个序列中的逆序对个数,然后再合并继续的思路;我把思想说了之后面试官就让我手写代码,写好之后他看下了应该是对的。

    76、STL中的空间配置器,问了为什么自由链表中的是8byte的倍数?

      • 问了那个刚开始那道题: 如何在一个队列中记录当前队列的最大值,这个跟那个栈的最小值有点相识,不过这个难一些,我用那个栈的思想说下我的解决思路,然后面试说你确定嚒?我说我看下,然后自己发现了问题,就把自己发现的问题跟面试官讲了下,然后讲了我那个解决方法的思想就是那个栈的最小值演变而来的;之后面试官提示我pop、push、getmax这三个方法都是O(n*lg(n))的时间复杂度,我说用堆嚒?他说堆插入的时间复杂度比较长,我思考了下说做不出来。
      • 最后问了那个逆序对个数的时间复杂度,让我手推公式,我也没推出来,然后面试官在我面前手推了一把

     

     

     

     

     

    https://www.nowcoder.com/discuss/52218?type=post&order=time&pos=&page=2

    https://www.nowcoder.com/discuss/52132?type=post&order=time&pos=&page=1

    相关文章
    相关标签/搜索
    香港藏宝阁精选资料大全 阳曲县| 巩义市| 威宁| 南平市| 两当县| 双峰县| 邵武市| 资阳市| 嘉义县| 临湘市| 德安县| 博客| 鲁山县| 桃园市| 磐安县| 故城县| 枣庄市| 洛隆县| 榆树市| 广东省| 梅州市| 台山市| 云南省| 张掖市| 肃宁县| 湟中县| 思南县| 潮安县| 土默特左旗| 墨江| 鄂尔多斯市| 绿春县| 穆棱市| 甘孜县| 香河县| 安福县| 榆林市| http://fa.hz0j2r4vo.fun http://fa.hz0j1r4vo.fun http://fa.hz0j2r5vo.fun http://fa.hz0j2r8vo.fun http://fa.hz0j1r2vo.fun