快手C++搜索一二面复盘

11.5投简历,11.5来电话,11.6一二面,至今(11.16)无回复,估计是凉了。

一面

1.上来面试官先自我介绍,然后我自我介绍。

2.面试官说作品展示点不开(实习僧简历),那就不问简历了,写题。

3.第一题反转链表leetcode206,太紧张了差点写错。

4.第二题岛屿数量leetcode200,见我写的太快,变形,输出岛屿面积;又变形,输出岛屿最大长宽。

5.了解的数据结构

栈,队列,树……不知道他想问什么

6.说说指针和引用

指针4个字节,有自己的内存空间,除了保存所指变量的地址,自身也有地址。

引用必须初始化,指针可以不初始化,等以后要用时再赋值。

7.说说class和struct

class默认private访问级别,struct默认public访问级别。

8.反问。我答的怎样。还行吧,我去叫二面的面试官

二面

1.自我介绍

2.字符串转整数leetcode 8

3.简历点不开,只看到Web后端的。

4.默认构造函数,拷贝构造函数不写的时候会发生什么。

编译器会给你生成默认构造函数,拷贝构造函数,析构函数,如果不写的话。

5.结构体对齐,有什么好处。这个我不太清楚,说内存-4 -8比较方便访问,面试官不是很满意。

其一是方便内存分配和回收,不对齐的话会产生许多内存碎片,即使对象已经销毁,空闲内存也不是特别容易回收合并。其二是方便CPU访问,比如CPU一次能访问四个字节,那么1+4的话,访问第二个变量就需要访问两次,而变成8个字节都方便很多。

6.虚函数相关。子类重写之类的答出来了。虚函数表会不会导致sizeof的值变大?这个真不知道

如果类内有虚函数,则会在类头生成一个虚函数指针,占四个字节,指向虚函数表。

7.static有什么用

对普通变量使用,可以将变量放到全局区。对类成员变量和函数使用,可以使得该变量和函数属于类,不属于对象。static还可以把函数限制在本文件内调用。

8.vector map hash_map查找一个元素的复杂度

vector,有序的话二分ologn,无序on;map用的红黑树,ologn,hash_map用的哈希表,o1。

9.vector内存扩张与释放

当插入一个新的元素时,会检查是否到达容量上限,如果没有,直接插入。如果到达上限,则申请一块新的内存空间,大小是原来的两倍,然后将所有元素拷贝过去。所以如果事先知道要存储多少元素,应该提前用reserve开好容量。

10.static函数和非static函数调用有什么区别

有一个this指针。

11.反问。我答的怎么样。还行吧。

总结

第一次面试,很紧张,算法题差点写不出来。

自我感觉良好,我简历上写的多线程epoll服务器没被看到,也没被问相关问题,不知道是幸运还是不幸。

发表评论

电子邮件地址不会被公开。 必填项已用*标注