百度2021春实习c++一面凉经
百度C++一面
自我介绍
一、讲讲static
答:1.局部变量进入函数只初始化一次
2.全局静态变量别的文件无法调用(面试官表示疑惑,让我再讲一遍,再讲别的文件怎么调用另一个文件,能调用吗?)
3.类成员变量、函数静态可以不实例化调用,编译的时候就已经存入静态区(再次表示疑惑)
四、讲讲malloc和new的区别
五、你刚刚说new会抛出异常,怎么不抛出异常?
六、讲讲单例模式写个单例模式
七、为什么构造要私有:
八、写个快排,时间复杂度?
写完,对我为什么退出循环还要再swap一次表示疑惑。我说因为标志位的数还没有在正确位置,先动右标,右标严格大于就会-1,直到动不了,再动左标,小于等于就会+1,直到动不了,最后相遇点的数一定比标志位小,所以交换一次,面试官表示:行吧。(写到吐的模版,不知道他为啥不满意)
九、写个线程安全的队列类
不会,说了一下加锁,
反问,结束,直接挂了。
#C++工程师##百度##实习#
自我介绍
一、讲讲static
答:1.局部变量进入函数只初始化一次
2.全局静态变量别的文件无法调用(面试官表示疑惑,让我再讲一遍,再讲别的文件怎么调用另一个文件,能调用吗?)
3.类成员变量、函数静态可以不实例化调用,编译的时候就已经存入静态区(再次表示疑惑)
二、讲讲智能指针,底层原理
三个都讲了、让自己写一下、weak有什么用,底层原理,我说weak指向的不会引起shared计数+1,可以解决循环,再再次表示疑惑 三、move函数的作用和底层原理
只讲了把左值转右值,其他不会
讲了四点
不会(查了一下:用nothrow版本或者 加一个new_handler)
说了饿汉和懒汉,写了饿汉
讲了防止被继承什么的,最后讲了防止直接实例化才说对
写完,对我为什么退出循环还要再swap一次表示疑惑。我说因为标志位的数还没有在正确位置,先动右标,右标严格大于就会-1,直到动不了,再动左标,小于等于就会+1,直到动不了,最后相遇点的数一定比标志位小,所以交换一次,面试官表示:行吧。(写到吐的模版,不知道他为啥不满意)
复杂度平均nlogn 最差n2
不会,说了一下加锁,
反问,结束,直接挂了。
#C++工程师##百度##实习#