腾讯一面面经c++
1.写代码:实现扫雷布局,给定棋盘的长和宽,以及炸弹的个数,返回一个矩阵
使用最直白的方法写出来了,但是效果不好,每次都要计算当前相邻的8个格子的炸弹数,会重复计算。
面试官让我去看看“洗牌算法”
2.vector的实现原理,vector容器push_back的平均时间复杂度(O(1))
3.map和unordered_map的实现原理(红黑树和哈希表),他们两者有什么区别?(O(1)和O(lgn))
既然unordered_map这么优秀,为什么还有map,map的应用场景?哈希如何解决冲突?
4.字符串如何哈希,(MD5),后面好像问了什么,但是不记得了
5.字节序了解吗(大小端),如何确定电脑的大小端(测试一下),大小端为什么不一样(处理器厂商),大小端判断通常运用在什么场景(网络通信,不确定对方的大小端)
JASON协议传输会有大小端的问题吗?XML会有吗?(其实我没有用过JASON和XML。。。所以就过了这个问题)
6.TCP如何保证可靠传输,TCP为什么要三次握手
7.int *p=NULL;*p=0;会报编译器错误吗?不会。运行时会出错吗?会。报什么错?(写入访问权限冲突)程序报的错还是内核报的错?内核
#面经##腾讯##C++工程师##校招#