title: “ Windows C++开发三面-网易有道精品课\t\t”
tags:

  • 面经
    categories:
  • 后端
    date: 2019-04-04 14:24:19

一面

  • Qt的信号槽实现
  • C++类和结构体区别
  • 手写算法:多个人人分苹果,每个人有权重,大权重得到的苹果一定多于临近小权重的人,求最少苹果需要的苹果树,给出n为人数和一组每人的权重值
  • 手写:层打印二叉树
  • 手写:一个数,如果是奇数加减1,如果是偶数除以2,求最少的计算多少次可以最后缩减到1。问算法的迭代时间复杂度如何,会不会溢出,是否有公式直接求解
  • tcp为什么会有三四次握手
  • udp tcp区别
  • tcp四次挥手为什么不三次
  • deque是什么容器,用于什么场景,queue是什么
  • vector,set区别,为什么在循环遍历迭代器过程中set插入不会导致迭代器失效,而vector会导致失效

二面

数据库,线程同步知识要补充

  • 手写:链表反转
  • 虚函数表实现,继承过程虚函数表父子类的区别
  • cpp默认会增加什么函数,空类的大小,空类会增加构造函数么
  • static全面介绍
  • 三次,四次握手
  • shardptr weekptr uniqptr是什么区别
  • shardptr怎么实现的
  • 一个结构体里有int和char各一个,sizeof是多少
  • lambda怎么访问外部变量
  • 多态的实现方法?函数重载,继承,模板
  • 数据库的索引有什么用,是如何实现的索引
  • 数据库的事务是什么?
  • 进城间通讯有什么方法
  • 线程同步有什么方法
  • 生产者消费者的实现
  • 设计模式知道什么?单例怎么实现?线程安全么?怎么做到线程安全的?用C++11标准如何实现线程安全?
  • 观察者模式怎么实现?
  • 工厂模式怎么实现?简单工厂,工厂,抽象工厂差异,应用
  • 是否了解大端小端?linux下怎么转换以保证通讯发送正确?有现成的四个函数。如果要求自己怎么,实现做?
  • map set区别
  • list vector区别

三面

  • 自我介绍后详细介绍一个项目
  • qt自定义控件有几种方法,继承重写,源码查窗口控件对象名通过元数据获取对象修改
  • qt信号槽的实现,如何跨线程的,如何控制具体槽函数在哪个线程执行(信号线程,槽所在对象的创建线程)
  • 数据库查找title字段包含123内容的方法
  • 删除vector所有的5,有几种方法实现
  • 详细问weekptr的意义,为什么又sharedptr还要有week,使用的场景
  • 一个对象返回自己的sharedptr会出现什么情况
  • 设计题:自己想一下有道翻译前后端的设计,各种能想到的都说
  • C++内存分为几个区域,分别存储什么
  • 一个空类大小,一个只有一个虚函数的类大小,一个只有构造函数的类大小
  • tcp为什么四次挥手
  • 爱好有什么?平时看什么书,最近看的什么?说说这本书的内容
  • tcp协议的主要属性,如何确定对方?答得是通过iq和port
  • 引用类型能作为类的数据成员么?