本文将记录我阅读别人面经/自己面经记录自己不懂的问题,方便以后巩固。 WebServer 项目 介绍下项目 服务器开始运行,创建(初始化)线程池(I/O密集型,线程数 n + 1) 创建 epoll 对连接进行监听 监听到连接事件,调用线程池处理 http 请求 读取 http 请求并对其进行解析(空格,\r\n 字段提取) 返回解析结果 为什么选择 epol...
这篇文章将会记录我使用 vim 所遇到的操作(遇到一个问题,记录一次),所以并不全面。 ”/” 命令 查找字符串 在 Vim 中,要查找字符串,可以使用 “/” 命令。具体操作如下: 进入正常模式,按下 “/” 键。 在命令行中输入要查找的字符串,然后按下回车键。 如果要查找下一个匹配的字符串,可以输入 “n”;如果要查找上一个匹配的字符串,可以输入 “N”。 如果要...
在 C++ 中,强制类型转换用于将一个数据类型的值转换为另一个数据类型。强制类型转换可以通过使用一组特殊的关键字来实现。以下是 C++ 中四种强制类型转换的方式: static_cast:在编译时进行类型转换,用于基本数据类型之间的转换和具有继承关系的类之间的转换。例如,可以将 int 转换为 double,或者将指向基类对象的指针转换为指向派生类对象的指针。使用时需要注意...
先验知识 在三维计算机视觉中,通常会将 3D 物体表示为一组由三维点坐标组成的点云,每个点由三个坐标 $(x, y, z)$ 表示。为了将 3D 点从世界坐标系转换为相机坐标系,需要使用旋转矩阵 $R$ 和平移向量 $T$ 进行变换,其变换公式为: [P_{camera} = RP_{world} + T] 其中 $P_{world}$ 是 3D 点在世界坐标系下的坐标,$P_{cam...
最近有线上笔试,由于线上笔试环境太难 debug,就想着用本地环境 debug。 遇到没有告诉输入行数的情况,通过 while 来处理,发现 Mac 的 CLion ide 下,使用 command + d 命令输入 EOF 符,直接退出了程序,并没有执行后续的输出语句。搜索半天才找到解决方法: 在 CLion 中,按下 shift+command+a 在弹出框中的 Acti...
STL 是 C++ 标准库的一部分,包含了诸多常用的基本数据结构和基本算法。STL包含了六个组件:容器(Containers)、迭代器(Iterators)、算法(Algorithms)、函数对象(Function Objects)、适配器(Adapters)和空间配置器(Allocators)。 容器是 STL 的核心,它是一种封装了数据存储和访问方式的数据结构,包括 v...
double mask_sum_errors = 0; int mask_inlier_number = 0; for (auto& v : contourErrors) { float err = v.first * v.first * gamma; if (err < _norm_thr) { //cout << "contourErrors: ...
C++ 中的内存管理是指在运行时分配和释放内存的过程。C++ 提供了两个操作符来实现动态内存管理: new 和 delete。new 操作符用于在堆上为变量或数组分配内存,并返回分配的内存地址。delete 操作符用于释放由 new 分配的内存,并避免内存泄漏。 除了 new 和 delete,C++ 还提供了一些类模板来封装不同的内存分配策略。这些类模板称为 分配器,它们允许通用容...
Linux 的 IO 多路复用是一种机制,可以让单个进程监视多个文件描述符,一旦某个描述符就绪(一般是读就绪或写就绪),能够通知程序进行相应的读写操作。Linnux 提供了三种 IO 多路复用的方式:select、poll 和 epoll。它们的功能是类似的,但具体细节各有不同。 IO 多路复用的应用场景很多,主要是在需要处理大量并发 IO 请求的情况下,例如网络服务器、聊天室、代理服务器...
epoll 是一个 Linux 内核的高效时间处理机制,它可以用来监控多个文件描述符的状态变化。主要应用在需要处理大量并发套接字的情况下,例如 HTTP 服务器。在这种情况下,epoll 可以提供高效的事件通知机制,避免轮询和阻塞。 epoll 的两种工作模式 epoll 的工作模式有两种,分别是 LT(水平触发)和 ET(边缘触发)。 LT 模式是默认的工作模式,它...
发现新版本的内容。