自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 向上取整和向下取整

取不超过该数的最大整数⌊x⌋(数学符号),C++中是floor(x)规则:直接去掉小数部分⌊3.7⌋ = 3。

2026-01-22 11:00:16 908

原创 C++模板类型

和基本用法一致,只是这里的参数变成了两个,显示指定的时候也要指定两个,且顺序不能乱。如果没有给定具体的参数,则使用默认值参数。这里模板函数的模板不是传入类型,而是。如下所示,这里将类实例化对象的时候。类型安全(比 void* 更安全)代码膨胀(多个类型实例化多个版本)<int>:显示指定模板类型。显示的通过<类型>去指定类型。intBox:实例化对象名。编译时多态(无运行时开销)编译时间长(模板实例化)(42)传入的初始化值。,再编译时就确定其大小。通过参数去推导模板类。模板参数存在默认值,

2026-01-16 14:13:31 64

原创 轮询 回调 回滚

将一个函数(回调函数)作为参数传递给另一个函数,并告诉它:“当你完成某件事或者发生某个事件时,请调用一下我给你的这个函数”。客户端(或调用方)会以固定的时间间隔,不断地向服务器(或被调用方)发起询问:“你有新数据吗?它指的是当某个操作(如一系列的数据修改、一个软件版本的发布)失败或产生问题时,系统能够撤销所有已做的更改,使数据或系统状态恢复到执行该操作之前的样子。你通过 epoll_ctl 告诉内核:“如果这个 socket 有数据可读了(事件),请把它放到就绪队列里(触发回调)”。实现简单,容易理解。

2025-11-23 11:42:12 269

原创 哈希表排序

哈希表内不允许直接排序,可以将哈希表转化为容器。

2025-11-04 10:23:45 177

原创 C++日志管理系统笔记(2)

简化日志记录的代码,减少重复的工作(如文件名、函数名、行号的传递)。根据不同的日志级别,日志的输出会受到控制,只有当当前的日志级别满足条件时,相关的日志才会被记录。有助于调试和维护程序,且在使用这些宏时,只需要选择合适的宏来记录日志,无需手动编写繁琐的日志。

2025-10-25 20:00:23 403

原创 c++笔记 虚函数与多态(2)

协变:基类中返回基类指针,派生类中返回派生类指针三同规则:返回值 函数名 参数类型 否则被认为是同名覆盖虚表最后一项用0填充类里面有虚函数,才展开继承,否则没有意义。

2025-10-24 21:37:46 196

原创 c++笔记 虚函数与多态(1)

是面向对象编程中的重要特性,通过继承和接口实现同一方法在不同对象上的不同表现,发生在运行时,属于动态绑定。,是在编译时就确定方法调用的具体实现。也就是说,在代码编译阶段,编译器就已经能够确定方法的调用方式。(函数重载):主要是为了同一个函数名可以处理不同的参数类型或数量,发生在编译时,属于静态绑定。实现,早期静态绑定,通过名字粉碎技术进行,主要是为了同一个函数名可以处理不同的参数类型或数量。根据对象的实际类型来决定调用哪个方法实现。,根据实际对象的类型来决定调用哪个版本的方法。通过方法重写实现,即。

2025-10-21 23:59:40 229

原创 多数元素哈希表题解

哈希表解法的关键:定义哈希表,将元素的值作为哈希表的键(对应为数组的下标)将元素出现的次数定义为哈希表的值(对应为数组的值)

2025-10-21 10:27:03 147

原创 复制数组的方法

源范围的结束迭代器(或指针),指向需要复制的最后一项的后一个位置(不包含该位置)。:目标范围的起始迭代器(或指针),即复制数据的目标位置。它逐个元素地将数据从源范围复制到目标范围。:源范围的起始迭代器(或指针),指向需要复制的第一项。:目标内存地址,即数据要复制到的位置。:源内存地址,即数据从哪里复制过来。中的元素复制到目标范围,从。:源数组,表示要复制的数组。:目标数组,表示复制到哪里。:源数组中开始复制的位置。:目标数组中开始存放位置。

2025-10-19 18:22:45 183

原创 C++ 日志管理系统笔记(1)

在日志管理系统中采用强枚举类型+数组索引的结合,避免了直接打印枚举类型时输出整型数(如1,2)导致读时出现误导的情况,通过将枚举值映射到字符串,可以更容易地调试和追踪日志输出。默认情况下,每个枚举常量的值通常是数字,并且它们可以直接使用数字或其他原始数据类型。通常要求枚举的值具有固定的数据类型,并且枚举的常量值不能被隐式转换为其他类型。输出格式如图,先将强枚举类型转化为int类型,在进行索引输出。,是指对枚举的值进行严格类型控制的枚举类型。,通常是指不强制类型检查的枚举。1.一般的枚举类型和强枚举类型。

2025-10-18 17:04:25 147

原创 c++笔记 静态成员

静态成员在程序运行时分配内存,而不是在每个对象的实例化时分配内存。因此,静态成员变量只有一份副本,所有类的实例共享这份副本。(在数据区不会随着函数的结束而释放)所以其值不会更新,会记忆为上一次调动的结果。任何一个对象和变量只能被初始化一次,不能被多次初始化,但是可以多次赋值。只能访问静态成员变量和静态成员函数,不能访问实例成员。可以通过类名直接调用,也可以通过对象调用,但。改变一个对象中的静态成员会影响到所有其他对象。,因此可以在没有创建对象的情况下访问它们。含有静态变量的函数,因为函数释放以后,

2025-10-13 14:36:38 123

原创 c++笔记 lambda表达式

可以通过this在表达式内修改this指针的指向之物(没有修改this。加上 mutable 可以在表达式内修改副本,但是正本不会改变,捕获程序中this 变量(静态成员方法没有this指针)捕获可以获得局部变量的值,但是不允许修改(只读)副本的建立是在定义时就建立,不是在调用的时候创建副本。ix进行引用捕获,其他值捕获,引用捕获不会生成副本。捕获相当于得到副本 不可以直接修改正本!捕获外部所有变量 (用到谁捕获谁)捕获bar 变量 ,同时不捕获其他变量。除了ix 是值捕获,其他引用捕获。

2025-09-27 11:35:41 262

原创 左值引用,右值引用

临时变量不随函数的消亡而消亡(static修饰,此时在data区,返回的tmp地址依旧是tmp变量,不会被其他量占据,可以用引用返回。左值引用可以通过具名来引用右值,右值引用只能通过强转/静态转换来引用左值。图上tmp临时量已消亡,返回tmp的地址,此时地址内数据会被其他量占据。右值引用可以通过引用去更改值,但是万能引用不行。使用右值引用可以固化延长将亡值对象的生命周期。同时,进行右值引用以后会变成具名右值(泛左值。函数中定义的临时变量不能以引用的形式返回。此时可以使用左值引用来引用。

2025-09-18 16:17:36 180

原创 指针和引用的区别

7.使用sizeof,对指针是得到指针变量的大小,对引用是得到变量的大小。6.指针作为形参要判断合法性(判空),引用不需要。8.指针的级数理论上没有限制,但是引用只有一级。对引用:直接反应到引用的实体,使实体++3.指针解引用要加“*” 引用可以直接用。4.指针可以发生改变,存储其他变量的地址,2.程序为指针分配内存,但是不为引用分配。对指针:会使指针指向下一个实体的地址。不可以对局部变量以引用或指针的方式返回。1.指针是存储地址,引用是别名。5.指针可以为空,引用不可以。引用被当作指针来处理!

2025-09-18 16:16:35 164

原创 左值,右值,将亡值

将亡值:在表达式运行或计算过程中产生的临时量(字面值或不具名对象)或临时对象。注:这里c是左值,左值不可以赋值给z,所以产生临时量(将亡值)赋值给z。注:tmp生存周期有限,所以调用拷贝构造函数创建将亡值对象,用将亡值来赋值。注:这里给出的是纯右值的将亡值,所以不能被赋值。左值:可以被取地址的值(具名对象或具名对象)注:只存在于运行和计算过程中,计算完成则销毁。右值:不可以被取地址的值(不具名)注:版本不同将亡值会被优化。

2025-09-17 14:42:54 184

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除