自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【基于多输出方向的同步&异步日志系统】

日志系统的作用是记录程序运行状态信息,以便程序员能随时根据状态信息对系统运行状态进行分析,能够让用户在运行测试程序时非常简便的进行日志的输出及控制。本文提供的日志系统支持多落地方向且支持拓展新的落地方向,同时即实现了同步日志器又实现了异步日志器

2023-09-09 16:48:19 650

原创 【C++进阶:哈希--unordered系列的容器及封装】

本文主要通过学习哈希表底层原理及模拟实现,从而完成了对unordered_系列容器的封装及测试

2023-07-30 19:04:47 244

原创 【C++进阶:map和set】

在C++初阶阶段,已经学习并总了STL中的部分容器,比如:vector、list、deque、forward_list等,这些容器统称为序列式容器,因为其底层为线性序列的数据结构,里面存储的是元素本身。那什么是关联式容器?它与序列式容器有什么区别?关联式容器也是用来存储数据的,与序列式容器不同的是,其里面存储的是结构的键值对,在数据检索时比序列式容器效率更高。

2023-07-27 17:44:38 179

原创 【C++进阶:多态】

本节重点主要掌握什么是多态以及实现多态的两个条件以及一些特殊情况,同时要对多态原理中的虚表有一定的理解

2023-06-30 17:30:26 144

原创 【C++进阶:继承】

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

2023-06-21 13:16:09 47

原创 【探究反向迭代器的实现,再次理解适配器模式】

之前在模拟实现list、vector等的迭代器的时候,只实现了它们的正向迭代器,是因为标准库里在实现反向迭代器时,并不像我们想象的那么简单,不是说直接修改一下正向迭代器的代码,而是在对正向迭代器进行相应的封装

2023-06-07 18:18:48 52

原创 【C++初阶(7):stack(栈)和queue(队列)】

标准库提供了三种顺序容器适配器:stack、queue、priority_queue。适配器是标准库中通用的概念,包括容器适配器、迭代器适配器和函数适配器。本质上,适配器是使一事物的行为类似于另一类事物的行为的一种机制。容器适配器让一种已存在的容器类型采用另一种不同的抽象类型的工作方式实现。例如,stack适配器可使任何一种顺序容器以栈的方式工作。

2023-05-31 01:41:24 131

原创 【手撕红黑树!>_< !】

红黑树,本质上也是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,Red或Black。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径长出俩倍,因而是接近平衡的。

2023-05-16 18:16:44 63

原创 【剑指offer经典算法题目总结】

本篇题目主要来源于剑指offer一书,是面试中高频率出现的问题,具有很强的复习参考价值,可作为面试前速览,其中不仅有题目解法,还有详细的分析过程,快来为你的面试准备锦上添花吧!

2023-05-16 12:01:35 232

原创 【平衡搜索二叉树的实现:手撕AVL!!】

我们学习的map/multimap/set/multiset等容器有个共同点是:其底层都是按照二叉搜索树来实现的,但是二叉搜索树有其自身的缺陷,假如往树中插入的元素有序或者接近有序,二叉搜索树就会退化成单支树,时间复杂度会退化成O(N),因此map、set等关联式容器的底层结构是对二叉树进行了平衡处理,即采用平衡树来实现。

2023-05-14 20:27:53 70

原创 【C++进阶(3):进阶二叉树】

前面在C初阶数据结构学习阶段,我对二叉树建立了初步认识,并总结了运用其解决一些问题的方法,但实际上二叉树是一个十分值得深入研究的结构,在有了一定的C++基础的条件下,我将基于C++继续总结二叉树相关的一些更复杂的问题,本篇涉及到的二叉搜索树主要是为后面学习map和set的特性而准备,同时二叉树部分在笔试面试也是考察的重要部分之一,笔记最后也会总结一些复杂的二叉树相关OJ题

2023-05-12 11:31:14 70

原创 【C++初阶(6):list】

1. list是可以在其任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。2. list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素。3. list与forward_list非常相似:最主要的不同在于forward_list是单链表,只能朝前迭代,以让其更简单高效。4. 与其他的序列式容器相比(array,vector,deque),list通常在任意位置进行插入、移除元素的执行效率更好。

2023-04-22 21:28:08 47

原创 【C++初阶(5):vector】

vector的使用+模拟实现

2023-04-07 21:38:34 123

原创 【C++初阶(4):String】

C语言中,字符串是以'\0'结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列的库函数,但是这些库函数与字符串是分离开的,不太符合OOP的思想【面向对象编程(英文Object Oriented Programming)】,而且底层空间需要用户自己管理,稍不留神可能还会越界访问。在OJ中,有关字符串的题目基本以string类的形式出现,而且在常规工作中,为了简单、方便、快捷,基本都使用string类,很少有人去使用C库中的字符串操作函数。

2023-03-03 21:22:45 135

原创 【C++初阶(2):类与对象】

类与对象语法详解+代码剖析

2023-02-15 21:26:18 121

原创 【类与对象实例练习:实现一个日期类】

通过实现一个完成的日期类来加深对类与对象的深入理解与使用

2023-02-14 21:16:22 283

原创 【C++初阶(1):C++入门】

C语言是结构化和模块化的语言,适合处理较小规模的程序。对于复杂的问题,规模较大的程序,需要高度的抽象和建模时,C语言则不合适。为了解决软件危机, 20世纪80年代, 计算机界提出了OOP(object oriented programming:面向对象)思想,支持面向对象的程序设计语言应运而生。

2023-02-11 17:37:03 158

原创 【数据结构初阶(5):排序】

常用的排序算法代码实现及复杂度稳定性分析

2023-01-14 17:56:21 121

原创 【数据结构初阶(4):二叉树】

树的基本知识以及二叉树的初阶实现与应用

2023-01-03 14:47:41 59

原创 【二叉树的链式结构(二叉链)及实现】

链式二叉树(二叉链)的实现与应用

2023-01-03 14:38:57 788

原创 【二叉树的顺序结构及实现】

有了基础铺垫我们知道普通的二叉树是不适合用数组来存储的,因为可能会存在大量的空间浪费。完全二叉树更适合使用顺序结构存储。现实中我们通常把堆(一种二叉树)使用顺序结构的数组来存储,需要注意的是这里的堆和操作系统虚拟进程地址空间中的堆是两回事,一个是数据结构,一个是操作系统中管理内存的一块区域分段。

2022-12-30 17:26:48 1185

原创 【建堆算法:向上调整算法和向下调整算法的时间复杂度计算】

本文主要详细计算了向上调整建堆和向下调整建堆两种算法的时间复杂度

2022-12-30 12:47:13 533

原创 【数据结构初阶(3):栈和队列】

栈和队列的概念结构以及具体实现

2022-11-17 21:49:59 138

原创 【数据结构初阶(2):顺序表、链表】

上节,我们知悉数据结构概念,它是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。简而言之:它的作用是用于内存中管理数据------增删查改。而其中最基础的就是线性表,本节将详细实现线性表中两种基础的数据结构:顺序表、链表。

2022-11-06 21:32:02 221

原创 【文件操作:C语言进阶(Day6)】

之前我们实现了通讯录,但可以发现,当通讯录运行起来的时候,可以给通讯录中增加、删除数据,此时数据是存放在内存中,当程序退出的时候,通讯录中的数据自然就不存在了,等下次运行通讯录程序的时候,数据又得重新录入,使用起来并不方便。 我们在想既然是通讯录就应该把信息记录下来,只有我们自己选择删除数据的时候,数据才不复存在。这就涉及到了数据持久化的问题,我们一般数据持久化的方法有,把数据存放在磁盘文件、存放到数据库等方式。使用文件我们可以将数据直接存放在电脑的硬盘上,做到了数据的持久化。

2022-10-13 09:07:18 63

原创 【动态内存管理:C语言进阶(Day5)】

有时候我们需要的空间大小在程序运行的时候才能知道,那数组在编译时开辟空间的方式就不能满足了,这时候就只能试试动态存开辟了。

2022-10-10 19:33:07 230

原创 【结构体的应用:实现一个简单通讯录的基本功能(内涵静态版、动态版、文件操作版等多种实现方法)】

怎么实现简单的通讯录?包括增删查改排序等功能的实现快来看看吧~

2022-09-29 20:23:29 213

原创 【自定义类型:结构体,枚举,联合:C语言进阶(Day4)】

自定义类型有哪些?分别怎么声明定义,有哪些特征,又该怎么使用,一起来学习吧

2022-09-22 17:14:19 362

原创 【字符串函数和内存函数:C语言进阶(Day3)】

重要的字符串函数和内存函数详解

2022-08-17 11:56:13 294

原创 【指针进阶:C语言进阶(Day2)】

1. 字符指针2. 数组指针3. 指针数组4. 数组传参和指针传参5. 函数指针6. 函数指针数组7. 指向函数指针数组的指针8. 回调函数9. 指针和数组面试题的解析

2022-08-11 11:31:39 420

原创 【你还只会用冒泡排序的思想排整形数据吗?快来解锁它的隐藏用法!】

自定义一个类似于qsort的函数,利用冒泡排序的思想实现各种数据的排序

2022-08-11 11:26:27 115

原创 【数据的存储:C语言进阶(Day 1)】

去探索计算机存储数据最底层的原理,拓宽解决问题的思路。

2022-08-02 20:06:23 589

原创 【数据结构初阶(1):算法的时间复杂度和空间复杂度】

数据结构(Data Structure)是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。 简而言之:它的作用是用于内存中管理数据------增删查改。类似的我们还听说过数据库,它与数据结构作用类似,只不过其作用对象是磁盘。...

2022-07-30 19:53:46 281

原创 【结构体:编程小白与C语言正式建交的第六天(打地基阶段6)】

结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。在实际生活中,实际上有很多的复杂对象,他要用各种数据来描述,例如,描述一个人,需要描述他的姓名、年龄、性别、电话号码、身高、体重等等,此时定义的单一的变量类型是不足以描述它的,这个时候就有了结构体,我们可以把结构体当作是一组用于描述同一对象的不同数据类型的集合...

2022-07-28 11:12:32 53

原创 【指针:编程小白与C语言正式建交的第五天(打地基阶段5)】

1. 指针是内存中一个最小单元的编号,也就是地址2. 平时口语中说的指针,通常指的是指针变量,是用来存放内存地址的变量

2022-07-27 19:17:24 94

原创 【操作符:编程小白与C语言正式建交的第四天(打地基阶段4)】

1. 各种操作符的介绍。2. 表达式求值

2022-07-25 10:11:13 185

原创 【数组:编程小白与C语言正式建交的第三天(打地基阶段3)】

数组是一组相同类型元素的集合

2022-07-20 09:18:25 113

原创 【函数:编程小白与C语言正式建交的第二天(打地基阶段2)】

在计算机科学中,可以把它定义为一个子程序,子程序是一个大型程序中的某部分代码, 由一个或多个语句块组成。它负责完成某项特定任务,而且相较于其他代码,具备相对的独立性。无论是哪里的函数,我们都可以把它看作某一个工厂,输入或传入的内容将其看作是原料,输出(传出)的看作是产品。...

2022-07-16 11:36:02 80

原创 【分支语句和循环语句:编程小白与C语言正式建交的第一天(打地基阶段1)】

C语言中的把语句分为以下五种类型:表达式语句、函数调用语句、控制语句、复合语句、空语句本章节主要介绍控制语句

2022-07-11 23:27:13 414 1

原创 【初识C语言:编程小白与C语言say hello的正确打开方式(绘制草图阶段)】

什么是C语言语言:不同个体之间信息交互的一种方式,人与人,人与动物,动物与动物......之间都有互相“交流”的语言。而人和计算机之间的语言就是“计算机语言”,目前已经有上千种计算机语言了c/c++/Java/Python......其中C语言:通用的计算机编程语言,广泛应用于底层软件开发什么是底层开发?我们刚买来电脑其实就是一个硬件,通常在硬件上会装上一个操作系统用于操控,为了实现这种操控,在操作系统和硬件之间还有一层驱动层,操作系统调用驱动来控制硬件(现在的电脑很少单独装驱动,大

2022-04-11 23:14:58 1526

空空如也

空空如也

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

TA关注的人

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