自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【高并发内存池】

当前项目是实现一个高并发的内存池,他的原型是google的一个开源项目tcmalloc,tcmalloc全称 Thread-CachingMalloc,即线程缓存的malloc,实现了高效的多线程内存管理,用于替代系统的内存分配相关的函数(malloc、free)。我们这个项目是把tcmalloc最核心的框架简化后拿出来,模拟实现出一个自己的高并发内存池,目的就是学习tcmalloc的精华,学习tcmlloc的这种框架设计。这种方式有点类似我们之前学习STL容器的方式。

2023-07-08 09:49:27 195

原创 【Git原理与使用】

Git使用与原理

2023-06-17 12:33:28 1696 1

原创 【负载均衡式的在线oj(1.compile_runner_server模块)】

该子模块只负责把浏览器提交上来的代码进行编译。如果编译出错,则形成临时文件,把编译报错写入到临时文件当中。该子模块只负责把compile子模块编译好的代码运行起来,把程序运行输出到标准输出和标准错误的内容重定向到temp路径下的指定文件当中,并获取程序运行结束后的退出信号。子模块主要内存时对compile子模块和runner子模块进行分装,并引入jsoncpp第三方库。当子模块获取到浏览器提交上来的json字符串类型的请求时,子模块就会把提交上来的json字符串喂给子模块进行处理。所以子模块就是分装。

2023-05-08 15:50:01 292

原创 【负载均衡式的在线oj(2.oj_server模块)】

主要完成对用户所请求资源的路由功能,分别为获取所有所有题目、获取单个指定题目和对指定题目运行结果的判题。oj_model子模块主要用来服务器和浏览器进行数据交互,对外提供访问数据的接口。例如浏览器获取所有的oj题目链表和获取指定oj题目的具体内容。oj_view子模块的功能是对数据进行渲染形成html文件。public :LOG(INFO)

2023-05-08 15:49:48 296 1

原创 【boost搜索引擎】

基于boost库没有站内搜索实现的boost搜索引擎,方便查找

2023-02-26 09:05:41 206

原创 【Linux进程信号】

万字详解Linux进程信号

2022-11-26 11:39:07 242 1

原创 【进程间通信】

Linux---进程间通信之匿名管道、命名管道、共享内存

2022-11-21 16:51:41 258

原创 【动静态库的制作和使用】

动静态库的制作与使用

2022-11-02 11:19:30 319

原创 lambda表达式

c++中的lambda表达式

2022-10-12 16:20:37 340

原创 【C++面向对象三大特性之继承】

继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,继承是类设计层次的复用。

2022-10-09 10:55:17 211 2

原创 【智能指针】

智能指针

2022-10-06 13:19:54 504

原创 【进程控制】

进程控制(万字详解,进程创建,进程终止,进程等待,进程程序替换)

2022-10-03 13:33:27 376

原创 红黑树(BTree)

红黑树是怎么平衡的?

2022-09-08 21:55:24 268

原创 AVL树(平衡二叉搜索树)

带你手撕AVL树,左单旋,右单旋,左右双旋,右左双旋

2022-09-03 11:04:49 3167 2

原创 【 二叉搜索树(BinarySearchTree)】

二叉搜索树的递归与非递归实现。

2022-08-31 08:51:09 224 1

原创 【二叉树】C语言实现

二叉树1.树的概念及结构1.1树的概念二级目录三级目录1.树的概念及结构1.1树的概念树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。二级目录三级目录...

2022-04-22 10:42:24 1703 4

原创 【直接插入排序、希尔排序,直接选择排序】(C语言实现)

直接插入排序、希尔排序,选择排序一.直接插入排序一.直接插入排序图形演示:✈✈✈第一趟排序✈✈✈第二趟排序✈✈✈第三趟排序✈✈✈第四趟排序代码实现://直接插入排序void InserSort(int* a, int size){ for (int i = 0; i < size - 1; ++i) { int end = i; int tmp = a[end + 1]; while (end >= 0) { if (a[en

2022-04-12 10:45:47 394 1

原创 【快速排序】(C语言实现)

快速排序一. 递归实现1. 快排是什么?2.实现快排的三种方式a.挖坑法b.左右指针法c.前后指针法二.非递归实现一. 递归实现1. 快排是什么?快速排序算法通过多次比较和交换来实现排序,其排序流程如下:(1)首先设定一个分界值,通过该分界值将数组分成左右两部分。(2)将大于或等于分界值的数据集中到数组右边,小于分界值的数据集中到数组的左边。此时,左边部分中各元素都小于分界值,而右边部分中各元素都大于或等于分界值。(3)然后,左边和右边的数据可以独立排序。对于左侧的数组数据,又可以取一个分界

2022-04-08 18:11:23 10312 9

原创 【堆排序算法】(C语言实现)

八大排序一.堆排序1.堆的概念及性质2.向下调整和向上调整两大算法二级目录三级目录一.堆排序1.堆的概念及性质1.1堆的概念a. 堆是一种基本的数据结构。在这里我用数组来形容,在一个二叉堆的数组中,每一个元素(根)都要保证大于等于或小于等于另外两个特定位置的元素(左右子树)。同时相应的,这些元素(根)又要大于等于或小于等于另外两个相应位置的元素(左右子树),整个数据结构以此类推。如果我们将整个数据结构画成树状结构,就能够清晰地看出整个结构的样子。1.2堆的性质a. 堆的逻辑结构一定是完全二叉树

2022-04-04 23:17:57 5630 5

原创 栈与队列(栈)

后进先出

2022-03-25 16:48:28 144

原创 【环形链表】

1.输入两个链表,找出它们的第一个公共结点。OJ链接给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 nulllt图示两个链表在节点 c1 开始相交:题目数据 保证 整个链式结构中不存在环。注意,函数返回结果后,链表必须 保持其原始结构 。思路一A链表中的每个节点跟B链表中的节点依次进行比较,如果有相等,就是相交,第一个相等的节点就是交点。时间复杂度为O(m*n)struct ListNode *getInter

2022-03-20 14:45:55 1232

空空如也

空空如也

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

TA关注的人

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