一面:
项目
- 图形和视觉相关的工作有做过吗;
- opencv 用了什么;
- 项目中图像算法都用了什么;
C++ 基础
- static (作用域、存储区)
- extern、extern “C”;带extern "C"生成的函数有什么区别呢;
- Override、Overload;Override关键字怎么用的;(可以显式的在派生类中声明,哪些成员函数需要被重写,如果没被重写,则编译器会报错。)
- 虚函数;
- 各种类型转换的 cast 的区别;dynamic_cast能转不带虚函数的类的吗,dynamic_cast转被强制转换过的指针可以吗;(不能转换不带虚函数的类的指针;出错返回空指针(应该是只会去管指针的类型))
- 多继承的时候虚函数表指针;
- auto关键字;下面代码问:C是什么;(c是拷贝)//*
vector<int>a;
vector<int> & b = a;
auto c = b;
- lambda;为什么要有lambda;(能在函数内,访问权限)
- lambda;变量捕获;(值捕获、引用捕获)
- 下面这样使用lambda 会有什么问题;
auto cal()
{
int c;
auto fun = [&](){
return c;
};
return fun;
}
void main()
{
auto x = cal();
x();
}
- shared_ptr 用 make_shared 的优势;(不用new、提高性能、异常安全)
- shared_ptr 中为啥用指针;(因为要多个对象指向同一个引用计数)
OS
- 进程线程;(线程共有、线程私有)
- fork 的父子进程的相同的地方、不同的地方;(文件、共享内存呢)
- POSIX线程;
- 有哪些锁;
- 无锁数据结构知道吗
- 为什么要有cache;//*
- JAVA 为啥比C++慢*(垃圾回收、在jvm上跑);还有吗?
- 类中成员分开new,一起new 有区别吗;(局部性原理?)
- 面向对象的设计模式,算不算是cache友好;
计网
- socket API ;
- listen 会阻塞吗;(不会)
- accept 会阻塞吗 ;(会)
手撕
- 后续遍历的树形dp;
- 递归回溯做就行;最好加上记忆化
- 边界处理一下就好
|