- 博客(79)
- 收藏
- 关注
原创 Linux之多线程
个人主页:点我进入主页专栏分类:C语言初阶 C语言进阶 数据结构初阶 Linux C++初阶 算法 C++进阶欢迎大家点赞,评论,收藏。一起努力,一起奔赴大厂一.背景知识1.1重谈地址空间先看看地址空间的样子: 在操作系统中,内存不是以字节为单位,而是被分为很多块,每块的大小是**4kb,4kb?磁盘中的文件进行IO的基本单位就是4kb(8个扇区),操作系统是4G, 被分成(102410244/4=2^20)块。在操作系统中者知识巧合吗?显然不是,操作系统是被精心设计过的,例如在磁盘
2024-09-03 11:58:42
827
原创 C++进阶之C++11
目录一.列表初始化1.1一切皆可用列表初始化1.2initializer list二.声明2.1auto2.2decltype2.3nullptr三.左值和右值3.1左值引用和右值引用3.2 左值和右值比较3.3右值引用场景(移动构造和移动赋值)3.4完美转发与万能引用3.5针对move一些补充四.lambda表达式4.1基本使用4.2捕捉列表五.新的类功能六.可变参数模板 6.1输出可变参数包的个数 6.2使用6.3emplace_back七.包装器 7.1function
2024-08-03 20:34:05
888
原创 C++进阶之AVL树
在看这篇博客之前需要了解二叉搜索树的相关内容,可以看这篇博客二叉搜索树,AVL树可以看成为了解决二叉搜索树的问题,它保证了左右子树高度差不超过1。本次的内容的重点就是对AVL树的旋转。
2024-06-21 23:25:01
772
原创 C++进阶之多态
a.需要继承,通过基类的指针或者引用的调用虚函数b.被调用的必须是虚函数,且派生类需要对基类虚函数进行重写public:cout << "买票--全价" << endl;public:cout << "买票--半价" << endl;Person p;func(p);Student s;func(s);运行可以看到。
2024-06-05 20:09:34
792
1
原创 C++进阶之继承
继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保 持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象 程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,继 承是类设计层次的复用。简单来说就是继承就是一个类获得另一个类的一些成员,我们把一个成为派生类,父类为基类。继承就是针对一些特殊的情况所产生的,当几个类有一些相同的成员我们可以把这些成员给到一个类中,然后继承。
2024-05-26 12:32:19
1213
1
原创 C++初阶之stack,queue,priority_queue的使用和模拟以及仿函数的创建和使用
在这里我们的stack,queue,priority_queue是适配器,适配器就是不需要我们自己去写,只需要使用我们已有的容器来写,可以使用vector,特可以使用list,但是我们默认使用的是deque,我们看看是如何实现stack,queue,priority_queue这三个的,我们可以直接看代码。这里的大部分内容我在前面写过,可以看博客栈和队列堆。
2024-05-11 10:00:00
536
1
原创 C++初阶之list的使用和模拟以及反向迭代器的模拟实现
list是一个带头双向链表,在数据结构的时候,我写过关于带头双向循环链表的实现,可以看博客,我们可以看下面的图,是list的存储结构,本次的内容包括list的使用,list的模拟实现,list的迭代器以及反向迭代器的原理,模拟实现和使用,最重要的是迭代器和反向迭代器的内容,在前面string和vector中迭代器是原生的指针,但是在这里不是,具体是什么样子的我们可以看后面的内容。
2024-05-07 10:00:00
758
1
原创 Linux之进程等待(wait,waitpid,WIFEXITED(),WEXITATATUS(),WNOHA)和进程替换(execl*)
一起努力,一起奔赴大厂。
2024-05-02 10:30:00
148
1
原创 Linux之冯诺依曼体系,操作系统,进程的理解,进程状态,以及进程的优先级
优先级是指进程获取资源的先后顺序,在Linux中优先级数字越小,优先级越高,优先级和权限有什么区别?优先级是可以访问资源,权限是是否可以访问资源。
2024-03-29 17:13:12
1021
1
原创 C++初阶之string的基础用法详细解析
string的初始化我们需要掌握的是利用字符串和string对象进行初始化,还有我们的空串。这三种是我们常用的初始化方式。
2024-03-05 17:29:08
1182
2
原创 Linux之vim的使用详细解析
vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x window、 mac os、windows。
2024-02-25 18:11:11
1805
2
原创 C++初阶之初始化列表,static成员,友元,内部类详细解析
今天我们来到了我们类的最后一节,包括构造函数的新写法,static成员,我们还会解决上一篇内容遗留的问题,在c语言中我们有匿名结构体,在这里我们有匿名对象,这次的内容非常的重要,有一些难以理解的地方,大家可以多看几次。A a;
2024-02-20 12:31:37
925
1
原创 日期类运算符重载以及const成员详细解析
我们在前面写了关于类的实现,这时候有人问到怎末实现类里边元素的运算呢?比如日期类我们怎末实现日期类的基本运算呢?我们知道类的成员变量是不能在类的外边进行访问的,我们就选算是想进行变量的运算也不能实现,那我们应该如何实现呢?我们可以封装成函数来实现,祖师爷对这进行了修改出现了我们的operator。那是如何实现的呢?今天的内容就结束了,主要就是对运算符的重载的详细解析,可以多体会体会其中的含义,最后希望大家可以一键三连。
2024-02-15 09:05:26
942
1
原创 C++初阶之类与对象(中)——六个默认函数详细解析
在本次博客中我将给大家带来6个默认成员函数,主要包括构造函数,析构函数,拷贝构造,赋值重载,符号重载,在这次文章中我们需要记住一个关键点自动调用,其中构造函数是对数据进行初始化,析构函数是完成清理工作,拷贝构造是对同同类对象进行初始化 ,赋值重载是把一个对象给另一个对象。其中重要的是前四个,我们这次对前三个进行讲解。类是我们C++中的一个重点,大家可以多看看,最后希望大家可以一键三连。
2024-02-11 09:11:07
1058
1
原创 C++初阶之类与对象(上)详细解析
在前面我们写过C++入门中的函数重载,命名空间,缺省参数,引用,还有一些新的语法, 这些内容是我们学习后面的基础,在今天我主要给大家带来关于类的内容,其中包括类的定义和使用,访问限定符封装,类的实例化,计算类的大小以及内存对齐。在c语言期间我们的结构体你还记得吗?int num2;int* p;struct A a;如果我们想定义一个函数,我们需要在结构体外进行声明和定义。那我们在C++中是如何使用结构体呢?我们看下面的代码int _year;
2024-02-03 09:05:41
1259
26
原创 C++初阶入门之函数重载,引用以及一些新语法详细解析
在前面我们写过关于命名空间和缺省参数的内容,今天我们的内容主要包括函数重载,引用和一些新语法,其中函数重载是应对函数命名冲突所产生的,引用是由于指针太过于麻烦祖师爷对其进行修改,是一种方便高效的新方法,我们的新语法包含auto关键字的使用,for函数在c++11中的新的方式,以及在c++98中一个错误以及在c++11中是如何进行修改的。在这篇文章中我会使用Linux的g++为大家讲解函数重载,这些问题在下面的文章中我会一一为大家解答。这次的内容是非常的多,希望大家可以有所收获,最后希望大家可以一键三连。
2024-01-31 13:10:48
1285
18
原创 C++初阶入门之命名空间和缺省参数的详细解析
在前面我们学过C语言,在这里我们就要进入我们的C+ +环节,说到C++我们不得不说说的我们的C++祖师爷Bjarne Stroustrup,当我们学完C++后你不得不感叹祖师爷真的是祖师爷,他的思想是真的牛。在这篇文章中我们将涉及到命名空间,缺省参数,半缺省参数,其中的内容真的是非常的good。
2024-01-27 16:57:14
1348
20
原创 Linux之权限(内容详细,细节满满)
在Linux中用户分为超级用户和普通用户,今天我们主要讲解一些修改权限,有无权限的差别,我们主要通过一些的实验来展示一下我们的操作,大家可以跟着一起来感受一下权限的操作。我们知道文件是文件内容加文件属性,文件属性应该怎么去查看呢?如何去增加和减少权限,如何实现共享文件,以及共享文件中的粘滞位有什么作用,应如何去实现?这些问题在这篇博客中我会使用三个用户为大家一一解答,大家要看仔细呦;
2024-01-23 15:49:21
1631
24
原创 Linux之基础指令大全【痛苦的开始】
Linux系统有很多使用方式,我们可以在电脑上搞一个双系统,也可以下一个虚拟机,当然我们也可以购买一个云服务器人然后使用我们的Xshell进行登录,Xshell免费版本,可以点击这个,连接进行下载,Linux的学习尤其是Linux前期的学习是非常的痛苦,Linux也是我们学习新的大门,1991年10月5日,赫尔辛基大学的一名研究生Linus Benedict Torvalds在一个Usenet新闻组(comp.os.minix)中宣布他编制出了一种类似UNIX的小操作系统,叫Linux。
2024-01-19 13:00:00
1357
24
原创 数据结构初阶之排序
在前面我们写过冒泡排序,堆排序,插入排序以及希尔排序。今天我主要给大家带来的包括选择排序,快速排序的霍尔版本。其中选择排序就是找到最大最小的数然后放在两边然后进行循环,进行下一次的最大最小数据的查找替换,其中有一个坑,坑在哪里后面会说,对于霍尔的快速排序,既然叫快速排序,那么它必然会非常的快,这个需要我们找到一个关键值然后进行,由于霍尔版本的坑非常的多,又有一些大佬对霍尔的快速排序进行了修改,包括思路类似的挖坑法和另一种思路不同的双指针法,这些内容逐渐的进行讲解。
2024-01-15 18:32:37
1600
31
原创 数据结构初阶之插入排序与希尔排序详解
时隔一个多月,我终于回来了。这段时间里,由于一些不可避免的原因,我没有能够抽出时间来撰写文章。但是今天,我非常激动地给大家带来了一些全新的内容,其中包含了插入排序和希尔排序的相关主题。在这一个月的沉淀中,我对排序算法进行了深入的学习和实践,通过对插入排序和希尔排序的研究,我深刻领悟到它们在算法设计中的重要性。这两种排序算法不仅在理论上有着独特之处,而且在实际应用中也展现出强大的性能。对于插入排序而言,它的简单直观的思想使得它成为初学者入门的良好选择。
2024-01-12 18:27:54
1796
63
原创 数据结构初阶之二叉树的详细解析
我在前面写过关于顺序表,栈,队列,堆的存储结构,现在我们还有一种一对多的存储结构树,在堆的博客中我写过一些树的概念,树的增删查改在我们的应用中并不实用,其中有用的是查找树,但是查找树的实现我们还没有能力去实现,树的实现可以用顺序表实现也可以用链表去实现,这次我们用链式二叉树去实现,利用顺序表实现可以看堆的内容。
2023-12-07 10:00:00
1792
18
原创 数据结构初阶之二叉树性质练习与代码练习
二叉树的学习是枯燥的也是充满乐趣的,它的核心部分是递归,这就需要我们多去刷题,树是一对多的结构,你是否还记得我在上一篇中写到树的内容可以分为根节点,左孩子右孩子,左子树右子树和根节点,左子树右子树这两种方法吗?这两种非常的重要,今天我们的代码部分会让你深刻的了解这句话,没有看上一篇对二叉树的解析的小伙伴可以去我主页进行查找。今天的内容就到这里了,想要学好二叉树就需要多练,可以多看看这篇文章和上一篇二叉树的文章,相信大家可以学到很多,其实二叉树就是递归,多画几次递归展开图就能理解其中是如何运行的。
2023-12-06 11:25:30
515
29
原创 数据结构之堆排序以及Top-k问题详细解析
在上一篇文章中我们主要讲解了关于大堆和小堆的代码实现,今天我们主要讲解关于堆排序以及堆排序的时间复杂度,我们会讲解关于经典的Top-k问题进行讲解(其中我会伪造一些数据来展示),今天的内容比上次的内容更加的爽,更有挑战性,其中的奥妙真的无法用语言来形容,接下来就让我们感受一下吧。今天的内容到这里就结束了,希望大家可以好好的理解今天的内容,欢迎大家来三连。
2023-12-03 21:41:11
1173
67
原创 数据结构之二叉树与堆以及力扣刷题函数扩展
在前面我们学习了关于顺序表,链表,栈,队列的存储方式。今天我将给大家带来关于树的一些内容以及堆的部分内容,详细包括树的定义,树相关的概念,二叉树和满二叉树的概念,树代码的实现会在后面的内容,大堆和小堆的代码实现。今天的内容相较于前面会有一点难以理解,希望大家可以认真学习,当然还有几个力扣刷题的函数扩展,其中的内容就绝对会让你感到其中的乐趣。
2023-11-29 14:03:56
583
40
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人