总结:面试官非常耐心,答不出来也会很认真引导,解释所有我回答不上的知识点,我愿称为无偿补课40分钟(不是)
- 编程语言中,c++算熟悉吗?对比新兴的主流语言,比如go、java、python,有没有什么倾向?
- 用cpp的版本是哪个?(答的11)
- 整体来说觉得cpp11怎么样?比如好用的功能,或者要吐槽的地方。
- CPP的11版本多了很多新功能,有没有什么功能是你觉得比较好用的?
- 移动语义和右值引用了解吗?(接上一个)
- 常见的STL库的容器有用过哪些呢?
- vector和list的区别是什么?
- vector和数组一样,在空间上分布是连续的,那它是如何实现动态分配的?
- vector分配上的连续,那它这个特点有什么应用吗?或者说有什么优势呢?
- 排序算法知道哪些呢?快排复杂度多少?最坏的情况是多少?
- STL的sort()函数里,有自定义的对比函数,这个有使用过吗?
- 那这个自定义函数有没有什么需要注意的点呢?比如说a<b,那假设a<=b会怎么样呢?
- vector和list的区别在哪?
- STL的容器还有很多,比如map经常和unordermap进行对比,那map是有序的吗?
- 所以map底层的逻辑是什么你知道吗?
- 说到树,那相关的数据结构代码有没有写过?红黑树和平衡树的对比,性能提升在哪里?
- 说回hash,它是怎么解决冲突问题的?2个不同的值可以映射到同一个键吗?在cpp里是用什么数据结构进行存储的?
- 看你简历上说到的项目,有开发过网络编程,用过REACT框架是吧?有没有做过网络编程的开发呢?
- TCP和UDP的特点和区别
- TCP的可靠传输具体是靠什么实现的?重传包是怎么知道要传什么包的?
- 端口号的范围?
- MySQL也学过是吧?除了普通查询,别的索引之类的用过吗?
反问
- 这个岗位需要负责什么工作呢?
- C++开发需要学习的东西有没有什么建议呢?
C++基础数据结构的底层结构、算法、如何避免它们的坑网络编程方面的知识
#面经#