自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 nginx内存池代码

nginx内存池代码

2024-07-14 21:57:30 95

原创 装饰器模式 适配器模式 观察者模式

【代码】装饰器模式 适配器模式 观察者模式。

2024-02-26 21:43:25 139

原创 抽象模式 代理模式

【代码】抽象模式 代理模式。

2024-02-20 00:45:35 141

原创 C++11容器emplace方法原理剖析 单例模式 简单工厂 工厂方法 线程安全的懒汉单例模式

【代码】C++11容器emplace方法原理剖析 单例模式 简单工厂 工厂方法 线程安全的懒汉单例模式。

2024-02-19 02:37:24 201

原创 右值引用 多线程 线程间互斥 mutex互斥锁 lock_guard和unique_lock 线程间同步通信-生产者-消费者模型 基于CAS操作的atomic原子类型

【代码】右值引用 多线程 线程间互斥 mutex互斥锁 lock_guard和unique_lock 线程间同步通信-生产者-消费者模型 基于CAS操作的atomic原子类型。

2024-02-18 01:20:14 99

原创 bind和function实现线程池 lambda表达式

【代码】bind和function实现线程池 lambda表达式。

2024-02-16 01:10:02 104

原创 bind绑定器和function函数对象

【代码】bind绑定器和function函数对象。

2024-02-14 23:21:05 83

原创 智能指针 多线程线程安全问题 删除器

【代码】智能指针 多线程线程安全问题 删除器。

2024-02-13 13:07:49 104

原创 右值引用 move移动语义 类型完美转发forward

【代码】右值引用 move移动语义 类型完美转发forward。

2024-02-06 00:58:45 97

原创 泛型算法 对象优化

【代码】泛型算法 对象优化。

2024-02-03 23:17:53 88

原创 无序关联容器 有序关联容器 容器适配器 函数对象(仿函数)

【代码】无序关联容器 有序关联容器 容器适配器 函数对象(仿函数)

2024-02-02 23:35:22 87

原创 C++四种类型转换 虚基类 虚继承 菱形继承 向量容器vector 双端队列容器deque 链表容器list

【代码】C++四种类型转换 虚基类 虚继承 菱形继承 向量容器vector 双端队列容器deque 链表容器list。

2024-02-01 22:15:52 127

原创 动态绑定 抽象类

【代码】动态绑定 抽象类。

2024-02-01 16:28:09 110

原创 继承 派生类构造过程 虚函数 隐藏 覆盖(重写) 虚析构函数

【代码】继承 派生类构造过程 虚函数 隐藏 覆盖(重写) 虚析构函数。

2024-01-30 01:17:57 117

原创 空间适配器allocator 理解new delete operator new operator delete 迭代器iterator失效 new delete重载实现对象池

【代码】空间适配器allocator 理解new delete operator new operator delete 迭代器iterator失效 new delete重载实现对象池。

2024-01-29 00:24:37 80

原创 实现复数类CComplex 字符串String类及vector中的空间配置器allocator和迭代器iterator

【代码】实现复数类CComplex 字符串String类及vector中的空间配置器allocator和迭代器iterator。

2024-01-27 01:26:33 145 2

原创 类模板实现C++STL中的vector 及容器空间配置器allocator

【代码】类模板实现C++STL中的vector 及容器空间配置器allocator。

2024-01-25 23:42:19 83

原创 类模板实现顺序栈 循环队列 以及函数模板相关知识点

【代码】类模板实现顺序栈 循环队列 以及函数模板相关知识点。

2024-01-25 00:20:32 302

原创 面向对象编程OOP实现顺序栈 字符串 循环队列 及面向对象知识点

【代码】面向对象编程OOP实现顺序栈 字符串 循环队列 及面向对象知识点。

2024-01-23 19:28:53 331

原创 二叉树链式结构实现

前序遍历:根---左子树---右子树中序遍历:左子树---根---右子树后序遍历:左子树---右子树---根层序遍历:每一层依次遍历。

2023-11-08 13:15:08 67

原创 C语言 C++动态内存管理

向堆申请内存,申请失败返回NULL向堆申请内存+初始化为0,num为个数,size为类型的大小,申请失败返回NULLptr为原地址,realloc主要用来扩容,扩为size大小,当原地址处能申请size大小的内存时,则返回原地址ptr;当原地址处不能申请size大小的内存时,重新找寻size大小的空间,将原来的数据拷贝到新空间,释放原来的空间,返回新空间的地址。若申请失败返回NULL动态申请的内存必须释放,通过free()释放,最好再将指针置为NULL。

2023-10-28 19:13:51 64

原创 C语言实现小堆

二叉树第k层结点数的最大值为。满二叉树:每一层结点都达到最大值的二叉树称为满二叉树。完全二叉树:最后一层可能满可能不满,其他层都是满的二叉树称为完全二叉树。满二叉树是特殊的完美二叉树。任何二叉树,若度为0的结点为n0,度为2 的结点为n2,则有n2=n0-1;在二叉树中已知父节点的下标为parent,则左孩子的下标为leftchild=parent*2+1,右孩子的下标为rightchild=parent*2+2;

2023-10-28 11:33:52 72

原创 C语言实现队列

队列可以用数组或者链表实现,用数组实现头删需要挪动数据,不容易实现,用链表实现较为简单。队列中的数据遵循先进先出(First In First Out)的原则。

2023-10-27 00:00:42 41

原创 C语言实现栈

栈的实现可以用用链表或者数组,但是链表实现比较复杂一些(出栈不好实现),用数组实现简单点。栈中数据遵循后进先出(Last In First Out)的原则。

2023-10-25 23:41:23 30

原创 用C语言实现双向循环链表

顺序表(数组)扩容有消耗,且存在空间的浪费,头插头删中间插入中间删除效率低O(n)链表不支持随机访问,头插头删中间插入中间删除效率高O(1)双向循环链表,主要用于STL中的list实现,存储数据。单向不循环链表,主要用于oj题。

2023-10-25 20:19:11 37

原创 面向对象基础知识(四)static成员|友元

面向对象基础知识(四)static成员|友元

2023-10-24 19:13:18 29

原创 环形链表(C++)力扣

当无环时:当有环时:拓展问题:快指针走3步,慢指针走1步,快慢指针会相遇吗答案是不一定,因为当x为偶数时,fast和slow会相遇,x-2,x-4,x-6,...0当x为奇数时,fast和slow不会相遇,x-2,x-4,x-6,...1,-1。

2023-10-22 10:18:47 33

原创 面向对象基础知识(三)

explicit可以防止隐式类型的转换,但是只对一个参数的构造函数有效,如果参数大于等于2个,那么explicit无效。可以发生隐式类型的转换,//可以这样理解:Data d1=3;转换成Data tmp(3);对象成员变量被初始化的顺序只与成员变量在类中声明的顺序有关 与在初始化列表中的顺序无关。因为这些类型的变量必须在定义时被初始化,而初始化列表是对象成员变量定义的地方。内联函数的定义和声明不能分开,因为内联函数没有地址,分开后找不到。以下这些类型成员变量必须在初始化列表完成初始化。

2023-10-21 17:28:31 30

原创 C++实现日期计算器

【代码】C++实现日期计算器

2023-10-21 11:59:18 81

原创 面向对象基础知识(二)构造函数|析构函数|拷贝构造函数

构造函数完成对象的初始化工作。构造函数分为三种:1.自己不写编译器自动生成的默认无参构造函数2.自己写的无参构造函数3.自己写的全缺省构造函数当自己实现了构造函数,编译器不会再调用默认的无参构造函数。建议写全缺省的构造函数,因为全缺省的构造函数既可以传参数,也可以不传参数,表示的范围更广。编译器默认生成的构造函数对于内置类型的变量不会初始化,但对于自定义类型的成员对象会调用他的构造函数。C++11 中针对内置类型成员不初始化的缺陷,又打了补丁。

2023-10-15 18:19:25 34

原创 面向对象基础知识(一)

封装是将类的属性和方法有机结合在一起,通过访问限定符隐藏具体实现细节。对外公开接口来和对象进行交互。

2023-10-13 22:50:04 20

原创 C++中关于内联函数的那些事

被inline修饰的函数称为内联函数,编译器在编译C++代码时,遇到内联函数就会原地展开,这样就避免了函数压栈的开销。是一种以空间换时间的手段(浪费更多空间存代码,但节省了建立栈帧的开销)。解决了频繁调用函数,建立栈帧的开销。

2023-10-12 22:23:44 32

原创 关于extern “C“

如果C语言项目要从C++写的库(动态库或者静态库)里调用想用的函数。那么必须再在该函数前面加上extern "C",否则链接不到。这样C语言项目调用函数时,这个函数就会按照C语言的规则来编译。C++项目调用这个函数就会按照C语言的规则调用。加了extern "C",函数就会按照C语言规则来编译,C语言程序就能找到,C++程序调用会按照C语言的规则来调用,也能找到。没加extern "C",C语言在链接时找不到函数的地址,因为函数是按照C++的规则来编译的,按C语言规则来调用找不到。

2023-10-12 17:50:47 25

原创 关于引用的一些事

引用是给已存在的变量取别名,他和变量是访问同一片空间。引用必须在定义时初始化。int& a;//这样的代码就是错的引用可以作为参数和返回值,这样可以减少拷贝,提高效率例如:int a=10;int& ra=a;//&a=&ra。

2023-10-12 12:57:43 20

原创 单链表的实现

链表是为了解决顺序表缺陷,而出现的数据结构,与顺序表互补。优点:头插头删,中间插入或删除,无需挪动数据,效率高O(1);缺点:不支持下标随机访问;不利于二分查找,排序等算法。

2023-10-11 20:38:24 29

原创 为什么C语言不支持函数重载?而C++却支持

c语言规则下汇编代码的函数名的命名规则与类型无关,而c++规则下的汇编代码的函数名的命名规则与类型有关。函数重载:C++中允许函数名相同,参数不同的函数共存,这就是函数重载。1.预处理:头文件展开,宏替换,条件编译,去掉注释。2.编译:检查语法,将代码转换成汇编代码。3.汇编:将汇编代码转换成二进制机器码。4.链接:将目标文件合并。

2023-10-11 00:20:24 141 1

原创 顺序表总结

顺序表实现

2023-10-10 19:37:52 44 1

原创 模拟实现优先队列(priority_queue)

模拟实现优先队列(priority_queue)

2023-10-08 21:09:31 41 1

原创 只出现一次的数字

只出现一次的数

2023-10-02 09:16:54 60 1

原创 调试(VS)

调试

2023-10-01 14:56:46 40

空空如也

空空如也

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

TA关注的人

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