一、八股

1.linux常用命令

Linux常用命令(面试题)_linux常用命令面试题-CSDN博客

常用命令、系统命令、打包命令、vim、开关机命令

2.socket通信调用api过程

TCP

UDP

3.进程和线程的区别

进程是系统进行资源分配和调度的基本单元,线程是cpu进行分配和调度的基本单元。

一个进程可以包含多个线程,但一个线程只能属于一个进程。

进程之间不会相互影响,但线程的崩溃会导致进程的崩溃,从而影响同个进程里的其他线程。

4.C++多态

5.快排思想、时间复杂度

选择数组第一个作为哨兵值,放在数组中间,小于该值的放数组左边,大于该值的放数组右边。

时间复杂度为O(NlogN)

6.select poll epoll

select和poll都是轮询,epoll采用红黑树查找,不会随着连接数目的增多导致查询效率降低。

红黑树是兼具搜索速度和增删快的优点的一种结构。

7.static关键字

修饰变量时:会在程序运行时一直存在,存放在静态存储区,局部静态变量作用域在函数体中,群居静态变量作用域在该文件中。

修饰函数:静态函数只在该文件中可以调用,不能在其他文件中进行调用。

修饰类方法:可以不用实例化,直接使用该方法。该方法内必须都是常量或者常函数。

8.vector插入

如果vector空间不够,会重新申请一块内存,空间是原来的1.5倍,然后再把数据拷贝过来。

9.lambda函数原理

【精选】C++进阶(八) :Lambda 表达式及底层实现原理【详解】_lambda表达式底层c-CSDN博客

10.指针和引用的区别

指针是地址,引用是别名;

指针可以为空,引用不可以;

指针一般8字节,引用根据引用对象确定;

指针可以多级,引用只有一级。

将类作为参数传递时用引用。

11.重载和重写的区别

重载是函数名相同,入参不同;重写是函数名和入参均相同,函数体不同。

二、算法

1.LeetCode——240 搜索二维矩阵II-CSDN博客

2.最长递增子序列的三种算法_求最长递增子序列-CSDN博客

3.15. 3Sum(三数之和)三种解法(C++ & 注释)_三数之和 c++-CSDN博客

4.括号匹配(C++)_括号匹配 c++-CSDN博客

5.力扣第347题 堆(优先队列) 经典题 c++ 简易注释版 附(相关知识点解答)_冷yan~的博客-CSDN博客