自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 深入解剖Linux进程:从诞生到调度的核心机制

什么是进程?为何需要调度?本文以Linux为例,详解进程的创建、状态切换及优先级竞争,剖析O(1)调度器如何高效管理CPU资源,并探讨僵尸进程等经典问题,助你掌握操作系统核心概念。

2025-03-28 19:10:58 806 23

原创 开发者必备:深入Git版本控制与gdb调试技巧

本教程全面揭秘版本控制神器Git,从历史到安装,从GitHub/Gitee项目创建到日常操作三板斧:add, commit, push。深入gdb调试器,揭示watch、set var、条件断点等高级调试技巧。

2025-02-10 10:49:10 1438 30

原创 Linux 编程入门:打造你的首个动态进度条

快速了解Linux系统中的回车与换行机制、行缓冲区的工作原理,以及如何在Linux环境下实现倒计时和进度条代码。通过这些实用的编程技巧,您将能够更有效地与Linux命令行交互,提升您的开发效率。

2025-01-06 14:09:14 1884 39

原创 Makefile秘籍:打造高效编译流程

Makefile是编程中的魔法配方书,它告诉make如何一步步构建你的程序。简洁、强大,它让编译过程变得简单而高效,是开发者的得力助手。

2024-12-28 16:51:30 832 7

原创 模拟算法实例讲解:从理论到实践的编程之旅

本文简要介绍了几种模拟算法,包括替换问号、提莫攻击、Z字形变换、外观数列和数青蛙问题。每个算法都针对特定的问题,提供了详细的解决方案和应用场景。

2024-11-22 12:02:06 3065 66

原创 【Linux】深入理解GCC/G++编译流程及库文件管理

本文将带你走进GCC/G++的编译流程,揭示静态与动态库的奥秘,为你的编程之路打下坚实的基础。让我们开始吧!

2024-11-19 09:29:36 2690 60

原创 Linux软件包管理与Vim编辑器使用指南

本文旨在为Linux用户提供一个全面的指南,涵盖软件包管理器Yum和强大的文本编辑器Vim的使用和管理。文章提供了参考资料,以便读者可以进一步深入学习和探索。

2024-11-14 20:40:50 1462 51

原创 Linux权限解析:用户、组和权限的协同

初学者权限理解必看:Shell命令是Linux操作系统中的命令行工具,用于执行各种系统操作。Linux权限系统基于用户、组和其他人对文件和目录的访问控制。权限包括读、写和执行,用于保护系统资源。Linux权限管理涉及文件访问者分类、文件类型和权限、权限值表示方法以及chmod、chown、chgrp和umask等命令。目录权限、缺省权限和粘滞位是权限管理中的关键概念,确保系统安全性和数据保护。

2024-11-06 10:31:34 1781 60

原创 Linux命令速查手册:快速参考与实践

Linux常用基础指令详细讲解,同时会讲解Linux重点知识,新手小白必看!

2024-11-04 10:49:27 1131 38

原创 位运算揭秘:如何用0和1征服算法世界

&:有 0 取 0| :有 1 取 1^:相同为 0 ,相异为 1 / 无进位相加。

2024-10-31 11:44:45 1557 16

原创 详解STL之 hash table — 超绝“常数平均时间”效率

哈希(hash)又称散列,是一种组织数据的方式。从译名来看,有散乱排列的意思。函数把关键字Key跟存储位置建立一个映射关系,查找时通过这个哈希函数计算出Key存储的位置,进行快速查找。hash table 可提供对任何有名项的存取操作和删除操作。由与操作对象是有名项。所以hash table也可被视为一种字典结构。这种结构的用意在于提供常数时间之基本操作,就像stack和queue那样。乍听之下这就是不可能完成的任务,因为制约条件如此少,而元素个数增加,搜寻操作必定耗费更多时间。

2024-10-27 20:03:39 1279 12

原创 详解STL之set和map --- 关联式容器的再封装

SGI-STL30版本源代码,map和set等几个头文件中。•通过下图对框架的分析,我们可以看到现key的搜索场景,还是key/value的搜索场景不是直接写死的,而是由第二个模板参数Value决定_rb_tree_node中存储的数据类型。•set实例化rb_tree时第而个模板参数给的是key,map实例化rb_tree时第二个模板参数给的是这样一颗红黑树既可以实现key搜索场景的set,也可以实key/value搜索场景的map。•要注意一下,

2024-10-25 15:58:03 1044 20

原创 详解STL之RBtree---关联式容器的底部机制值之用

c一定不是新增,c之前是黑色的,是在c的子树中插入,符合情况1,变色将c从黑色变成红色,更新上。如果p是g的右,c是p的左,那么先以p为旋转点进行右单旋,再以g为旋转点进行左单旋,再把c变黑。3. 如果一个结点是红色的,则它的两个孩子结点必须是黑色的,也就是说任意一条路径不会有连续的。当于保持g所在子树的黑色结点的数量不变,同时解决了c和p连续红色结点的问题,需要继续往上更新。如果g的父亲是黑色,则处理结束。c变成课这颗树新的根,这样子树黑色结点的数量不变,没有连续的红色结点了,且。

2024-10-19 20:22:04 803 11

原创 详解STL之 AVL tree --- “额外平衡条件的”二叉搜索树

2.AVL树的实现。

2024-10-15 15:30:22 1102 7

原创 set 和 map 的使用

介绍了set和map的使用,OJ题中的应用

2024-10-12 15:11:42 1026 8

原创 二叉搜索树

binarysearchtree,key和key/value

2024-09-28 08:18:55 1077 31

原创 多态

多态是一个集成关系下的类对象,去调用同一函数,产生了不同的行为。比如Student继承Person。Person对象买票全价,Student对象优惠买票。

2024-09-24 17:55:02 865 24

原创 继承

介绍继承相关知识点。

2024-09-22 13:31:14 1146 26

原创 模版进阶(template)

介绍了非类型模版参数、模版的特化、模版分离编译

2024-09-19 16:30:52 1046 31

原创 STL-vector练习题

vector的练习题

2024-09-16 21:17:40 1259 26

原创 stack - queue

介绍了容器适配器和deque,stack,queue,priority_queue

2024-09-16 13:39:55 985 22

原创 SLT—List详解

详细介绍了SLT的 list 的使用及模拟实现,对比了 list 与 vector 的区别

2024-09-07 18:28:47 1525 26

原创 STL—Vector详解

介绍了vector的使用和模拟等知识点,其中重点讲vector的迭代器失效与vector模拟实现的各种注意事项

2024-09-05 20:47:07 1953 21

原创 LeetCode—string练习

介绍了字符串string的各类练习题

2024-09-03 17:17:57 911 14

原创 string详解(2)— 模拟实现

string类的模拟实现,浅拷贝和深拷贝,详细介绍String类实现的swap与算法库的swap的区别,简单了解vs和g++下string的结构。

2024-08-15 23:59:16 729 26

原创 string详解(1)

标准库string类的常用接口,auto和范围for

2024-08-11 11:08:13 982 27

原创 模板初阶&STL简介

模板初阶:泛型编程,函数模板,类模板STL简介

2024-07-23 02:00:00 815 39

原创 C++内存管理

malloc/free和new/delete的共同点是:都是从堆上申请空间,并且需要用户手动释放。不同的地方是:1. malloc和free是函数,new和delete是操作符。2.malloc申请的空间不会初始化,new可以初始化。3. malloc申请空间时,需要手动计算空间大小并传递,new只需在其后跟上空间的类型即可,如果是多个对象,[]中指定对象个数即可。4. malloc的返回值为void*, 在使用时必须强转,new不需要,因为new后跟的是空间的类型。5.

2024-07-22 12:53:37 843 20

原创 类和对象(下)

详细介绍初始化列表,隐式类型转换,静态成员static,友元,内部类,匿名对象以及编译器优化

2024-07-20 15:00:22 946 15

原创 类与对象(中)

MyQueue没有实现构造函数而是调用Satck的默认构造。5. 像Date这样的类成员变量全是内置类型且没有指向什么资源,编译器自动生成的拷贝构造就可以完成需要的拷贝,所以不需要我们显示实现拷贝构造。像Stack这样的类,虽然也都是内置类型,但是_a指向了资源,编译器自动生成的拷贝构造完成的值拷贝/浅拷贝不符合我们的需求,所以需要我们自己实现深拷贝(对指向的资源也进行拷贝)。像MyQueue这样的类型内部主要是自定义类型Stack成员,编译器自动生成的拷贝构造会调用Stack的拷贝构造

2024-07-17 16:39:16 841 11

原创 类与对象(1)

类与对象(上篇),介绍类的定义,实例化,this指针,分析了C语言和C++实现stack的对比

2024-07-13 22:15:00 1232 5

原创 C++入门基础

定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{}中即为命名空间的成员。命名空间中可以定义变量/函数/类型等。● namespace本质是定义出一个域,这个域跟全局域各自独立,不同的域可以定义同名变量,所以下面的rand不在冲突了。●C++中域有函数局部域,全局域,命名空间域,类域;域影响的是编译时语法查找一个变量/函数/类型出处(声明或定义)的逻辑,所有有了域隔离,名字冲突就解决了。局部域和全局域除了会影响。

2024-07-12 01:08:10 1043 3

原创 非比较排序—计数排序/基数排序/桶排序

计数排序是一个稳定的排序算法。当输入的元素是n个范围为range的整数时,时间复杂度是O(N + range),空间复杂度也是O(N + range),其排序速度快要任何比较排序算法。当range不是很大,并且序列比较集中时,计数排序是一个很有效的排序算法。

2024-07-05 18:24:29 953 5

原创 归并排序详解(递归与非递归)

探索归并排序的递归与非递归实现,深入理解算法核心,并掌握外排序之文件归并技巧。

2024-07-02 13:41:23 2053 3

原创 一篇文章带你彻底搞懂十大经典排序之——快速排序

快速排序是一种高效的排序算法,通过选择枢轴元素并递归地将数据分为两部分实现排序。它有多种实现方式,包括Hoare法、挖坑法和非递归实现,同时可以通过优化策略提高性能。

2024-06-27 21:07:05 850 2

原创 十大经典排序算法——选择排序和冒泡排序

一篇文章掌握十大经典排序算法之选择排序和冒泡排序

2024-06-23 18:47:56 606 2

原创 十大经典排序算法——插入排序与希尔排序(超详解)

(1)元素集合越接近有序,直接插入排序算法的时间效率越高(2)时间复杂度:O((3)空间复杂度:O(1),是一种稳定的排序算法(4)稳定性:稳定(1)希尔排序是对直接插入排序的优化(2)当gap > 1时都是预排序,目的是让数组更接近与有序。当gap == 1时,数组已经接近有序了,这样就会很快。对整体而言,可以达到优化的效果。(3)希尔排序的时间复杂度不好计算,因为gap的取值方式有很多种,导致难以计算。大约是在O()左右。(4)稳定性:不稳定。

2024-06-22 21:24:43 1063 1

原创 二叉树系列题

【代码】二叉树系列题。

2024-06-04 20:29:28 441 3

原创 二叉树链式结构的实现

数组中最后一层数据是连续存放的(可以不存满),空节点和非空节点是连续的(如果后面全空就是完全二叉树,后面有非空就不是完全二叉树)。

2024-06-02 16:06:43 1023 1

原创 二叉树—堆(C语言实现)

树是一种非线性的数据结构,它是有n(n > 0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一颗倒挂的树,也就是说它是根朝上,而叶朝下。树结构相对线性表就比较复杂,要存储表示起来就比较麻烦,既然保存值域,也要保存结点和结点之间的关系,实际上数有很多表示方式比如:双亲表示法,孩子表示法,孩子双亲表示法以及孩子兄弟表示法等。我们这里就简单的理解其中最常用的孩子兄弟表示法。二、二叉树的概念及结构1.概念由上图可知: 注意:对于任意的二叉树都是有以下几种情况符合而成的:(1)满

2024-05-29 16:46:09 1148 10

空空如也

空空如也

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

TA关注的人

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