摘要:
ICMP(Internet Control Message Protocol,互联网控制报文协议)和ARP(Address Resolution Protocol,地址解析协议)都是网络层协议,它们在互联网通信中扮演着重要的角色。下面是它们各自的简要介绍: ICMP(互联网控制报文协议): ICMP 阅读全文
摘要:
智能指针,如C++中的std::shared_ptr和std::unique_ptr,通常不是线程安全的。这意味着在多线程环境中,如果多个线程尝试同时访问和修改同一个智能指针,而没有适当的同步机制,就可能导致未定义的行为。 std::shared_ptr:它使用引用计数机制来管理对象的生命周期。如果 阅读全文
摘要:
ps -e(-ef) 查看全部进程 pid pgrep <进程名> 查询进程的pid pmap <pid> 查看给这个进程分配的内存 阅读全文
摘要:
git submodule update --init --recursive 是一个 Git 命令,用于初始化和更新 Git 仓库中的子模块。下面是这个命令的详细解释: git submodule update: 这个命令用于更新子模块。子模块是项目中包含的另一个 Git 仓库,通常用于共享代码或 阅读全文
摘要:
单元测试的覆盖率(Code Coverage)是一种衡量软件测试完整性的重要指标,它表示代码在测试过程中被执行的比例。计算单元测试覆盖率主要有以下几种方法: 行覆盖率(Line Coverage):计算被测试的代码中有多少行被执行。公式如下: \[\text{行覆盖率} = \frac{\text{ 阅读全文
摘要:
#include <iostream> #include <unordered_map> #include <list> using namespace std; class LRUCache { private: int capacity; unordered_map<int, pair<int, 阅读全文
摘要:
std::optional 是 C++17 标准库中引入的一个模板类,用于表示一个可能存在、也可能不存在值的对象。它的设计目的是为了解决函数或方法可能返回空值的情况,避免使用指针或特殊值(如 -1 或 nullptr)来表示缺失值,从而提高代码的安全性和可读性。 主要特点和用法: 表示可能的空值: 阅读全文
摘要:
缺页中断(Page Fault Interrupt)是计算机操作系统中的一种中断类型,它发生在程序试图访问主存储器(通常是 RAM)中不存在的页面时。这种情况通常发生在以下情况: 程序首次访问某个数据:当程序运行并访问到一个尚未加载到物理内存中的页面时,会触发缺页中断。 页面置换:在内存受限的情况下 阅读全文
摘要:
在 C++ 中,一个空白的类(也就是没有任何成员变量的类)通常占用的内存大小是 1 字节。这个大小是由于 C++ 的内存对齐规则导致的。即使类中没有数据成员,编译器也会为这个类分配至少一个字节的空间以满足内存对齐的要求。 内存对齐是指编译器为了提高内存访问效率,按照特定的规则在内存中分配对象的起始地 阅读全文
摘要:
在C++中,提供了几种不同的类型转换方式,每种转换方式有其特定的使用场景和语义。以下是C++中常见的几种类型转换方式: 静态转换(Static Cast): 使用 static_cast 进行转换,用于基本类型之间的转换,如数值类型的转换、非 const 对象指针的转换等。静态转换在编译时进行,不提 阅读全文