自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++智能指针详解

auto_ptrauto_ptr的实现机制就是保证堆内存的所有权唯一,一块堆内存只允许一个智能指针进行管理,当有新智能指针指向该内存块,就回收旧智能指针的所有权,这样实现的结果就是在拷贝构造或赋值的过程中,可能会导致旧智能指针的提前失效,要避免将其放入容器中,算法对容器进行操作时,很难避免STL内部对容器进行复制传递操作,易导致容器内部的一些元素被置空。

2023-12-18 23:06:32 73

原创 C++强制类型转换

(主要C风格的类型转换,隐式转换在某些情况下可能会存在问题,显示转换将所有情况混肴在一起,不够清晰)

2023-12-18 13:54:46 52

原创 基于libevent实现http通信

libevent

2023-04-27 17:34:23 550

原创 libevent事件循环库

libevent支持`select`(支持跨平台、性能开销大、可监听fd数量不能超过FD_SETSIZE)、`poll`(类似select,但无FD_SETSIZE的限制)、`epoll`(windows不支持、支持LT水平触发、ET边沿触发模式、性能快)、`iocp`(linux不支持、内部维护有线程池处理)等多种网络模型,还支持有其他网络模型

2023-04-24 16:31:27 425

原创 关于malloc返回地址无法访问

malloc返回地址无法访问

2023-04-19 13:38:49 266 1

原创 python之网络

python

2023-04-18 14:49:03 411

原创 python之多进程线程相关总结

python

2023-04-18 14:48:25 184

原创 python基础总结二

python

2023-04-18 14:23:25 451

原创 python基础总结一

python

2023-04-04 10:02:25 102

原创 mysql

mysql

2023-04-03 16:09:01 297

原创 CMake--CMakeList.txt编写

cmake

2022-12-21 16:59:05 580

原创 git总结

git

2022-12-20 14:47:47 68

原创 二叉查找树

二叉查找树(二叉搜索树)二叉查找树要么是一棵空树,要么满足:对于任意结点,若它的左子树不为空,则左子树上所有结点的权值均小于该结点的权值,若它的右子树不为空,则右子树上的所有结点的权值均大于该结点的权值,在二叉查找树中,任意结点的左子树和右子树都是二叉查找树,一般而言,二叉查找树上的结点的权值都是唯一的若中序遍历二叉查找树会得到一个从小到大的有序序列二叉查找树的插入和查找的效率相对较高,最坏情况(二叉查找树退化成链表,从根结点依次往左递减或往右递增)下时间复杂度为O(n),期望的时间复杂度为O(log

2021-07-22 12:44:16 236

原创 二叉树及遍历方法、哈夫曼编码

代码总结二叉树结点的子树个数为结点的度,度为0即没有孩子结点的结点称为叶子节点,规定根结点为树的第一层,节点的最大层数就是树的深度,在树上,从一个结点出发可以访问到其余的结点,并且一个结点到另一个结点的路径有且仅有一条二叉树的第 i 层最多有 2^(i-1) 个结点深度为 k 的二叉树最多有 2^k - 1 个结点记一颗二叉树结点数为 n ,度为 0,1,2的结点分别为 n0,n1,n2,则 n=n0+n1+n2,可知一颗二叉树有 n-1条边,度为0,1,2的结点分别可以衍生出0,1,2条边,.

2021-07-21 20:02:12 707 1

原创 线性结构(顺序表、链表、栈和队列)

代码总结顺序表可以随机访问,但删除和插入操作需要移动大量数据顺序表初始化、扩容、插入、查找、删除、遍历的操作#include <stdio.h>#include <stdlib.h>#define ERROR 0#define OK 1typedef struct Vector { int size; int length; int *data;} Vector;void init(Vector *vector,int size.

2021-07-21 19:53:04 102

原创 排序算法思路整理

排序算法思路整理个人理解,主要是给自己看的,文字较为通俗,见谅是否稳定:是否会改变相同元素的相对顺序冒泡排序(稳定)思路 :以升序为例,从第一个元素开始,与下一个元素做比较,如果前一个元素大于后一个元素,则进行交换,否则直接++,每次大的元素做交换往后移,则第一趟遍历下来,最大的元素,已经到了最后,重复操作,n个元素需要 n-1 趟的遍历就会完全有序。void Bubblesort(int *arr,int len){ int tmp=0; for(int i=0;i<le

2020-10-02 22:32:52 331

原创 BF,KMP

BF,KMPBF和KMP算法都是针对于字符串的操作,是用于字符串匹配的,从主串中查找有无子串的存在,若匹配成功,返回主串中子串首元素的下标,匹配失败返回-1BF算法时间复杂度 :O(mn)BF算法属于一种暴力破解的算法,穷举所有可能来进行匹配,在其算法过程中存在回溯,这很影响算法效率,因此实际运用情况很少,更多选择其他算法,如KMPBF算法是通过循环,从主串的第一个元素开始,与子串的第一个元素进行匹配,若匹配成功,则让主串的第二个元素与子串的第二个元素进行匹配,依次类推匹配,若匹配失败,则让主串的

2020-10-01 23:14:55 101

原创 进程间通讯(IPC)——消息队列

消息:可以简单理解为类型+数据消息类型需大于等于1,0代表着不区分消息类型,也可以认为是任何类型struct mess{ long int type;//>=1 ...//存储的数据}消息队列在同一类型上的消息传递符合先进先出的规定,对于整个消息队列而言,类优先级队列引用头文件#include <sys/msg.h>消息队列的使用:创建:int msgget( ket_t )key , int flag);返回值为内核对象的标识符,即所创建的消息队列的标识符,

2020-08-17 22:36:07 150

原创 进程间通讯(IPC)——管道

mkfifo 文件名

2020-07-30 22:46:35 144

原创 静态库与共享库简单介绍

库文件:预先编译好的方法的集合,简单说是指某些功能代码的集合(库文件中不允许包含main函数)静态库:指在链接阶段直接将库中的内容直接合并到最终的可执行文件中静态库是功能代码编译完成后中间文件的集合,静态库所生成的可执行文件并不依赖于库文件所执行静态库的生成命令:1.先编译生成.o文件gcc -c *.c2.生成库命令ar crv libXXXX.a *.o (XXXX代表库名)(c 创建 r 把方法放入库中 v 显示详细过程<可不加>)共

2020-07-25 22:54:27 212

原创 简单实现一个通用内存池

简述通用内存池:开辟内存系统会从用户态切换到内核态再开辟内存,所以频繁的开辟,释放内存会给我们带来外碎片和效率降低的问题,故而基于此提出了内存池的概念,在真正使用内存之前,先申请开辟一个很大的内存块作为备用(内存池),然后当需要使用时,再从该大内存块(内存池)中分配一块内存来使用,当这块内存用完后再还给内存池,如果使用时内存池的内存块不够就再重新申请一块大的内存块,这在一定程度上很大的解决了外碎片...

2019-12-18 23:45:23 415

原创 基于数字处理的部分总结

关于数字处理,例如计算位数,以及输出每位的数字,首先即是学会 “丢弃高位” 和 “丢弃低位”。例:给出一个正整数1,求出它是几位数 2,顺序输出各位数字 3,逆序输出各位数字c语言中,整数除以整数的结果必然为整数,如15/10=1,31/5=6 ,因此若是给定的正整数为n,我们可以用n/10来丢弃个位,直至当n==0时,丢弃了几次个位,do while循环了几次,n...

2019-04-14 19:13:21 219

NotePad++安装包

NotePad++安装包

2023-04-07

空空如也

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

TA关注的人

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