小米软开一面
一面比较偏基础
1. 进程和线程的区别
2. 进程线程同步情况,条件变量和信号量的区别。
3. 两个线程循环调用,具有共享数据,使用哪种同步方式。
4. Tcp3次握手和四次挥手,为什么是四次挥手,同步分节里面有什么。
5. Time_wait状态,为什么?什么时候?那个端产生的,可不可以一个msl
6. Time_wait状态情况下产生地址和端口占用,怎么解决(socket 中的SO_REUSEADDR)
7. 设计模式知道哪些?工厂方法什么思想?工厂如果生成新的产品需要修改代码吗?怎么让他不修改代码
8. C++函数重载和多态,讲一下,动态和静态,虚函数,RTTI
9. STL哪些?底层的数据结构是什么?查询的时间复杂度
10. Map底层
11. stl查找有没有什么优化的方法
12. 求n个数中最小的k个数,n是海量数据
13. 程序题1:实现一个字符串拷贝函数,需考虑目的地址与源地址有可能重合的情况. 时间:10分钟
14. 程序题二:打印回环数字矩阵,输入参数为边长n,例如n=4,求如下的回环矩阵:
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
#小米##C++工程师#