- 博客(40)
- 收藏
- 关注
原创 django回忆录(Python的一些基本概念, pycharm和Anaconda的配置, 以及配合MySQL实现基础功能, 适合初学者了解)
讲一下Python基础知识, 以及最新的Anaconda和pycharm的配置, 顺便讲一下django的开发顺序流程.
2025-05-20 13:35:12
1003
原创 C++模板
如果你函数声明和定义分离,就要这样写, 否则不用此外, 类模板里面的成员函数声明和定义不能写在两个文件, 也就是说, 你不能把函数声明写在头文件, 然后cpp文件再去实现. 这个后面再说.四、模板参数。
2025-05-13 18:24:31
1070
原创 C++内存管理
c++其实可以说是c语言的一个扩展版本, 所以在内存管理和内存区域划分方面两者是很相似的. 今天来给大家讲一下c++的内存管理.这是程序内存区域划分的大概的样子 :newdeletemallocfreenewdeletestatic"hello"const那为什么要这样划分内存区域呢?
2025-05-10 14:35:39
887
原创 类和对象(下)
当实例化一个类的对象时,编译器会为对象的成员变量分配内存空间,从这个角度来说,可以认为成员变量在对象实例化时被 “定义” 了。在这行代码执行时,编译器为obj对象的num和value成员变量分配了内存空间。所以初始化列表第二个解决的问题就是, 这个类类型变量没有默认构造函数, 我们得在初始化列表用那个传参的构造函数进行类类型变量的初始化.
2025-05-07 18:17:24
1110
原创 类和对象(拷贝构造和运算符重载)下
在成员函数的参数列表之后添加const关键字,就能将其声明为const成员函数。public:// 返回类型 函数名(参数列表) const// 函数体。
2025-05-01 17:38:29
839
原创 类和对象 (拷贝构造函数和运算符重载)上
内置运算符只能处理内置类型,而对于自定义类型,你可以通过运算符重载来定义适合它们的运算规则。在 C++ 中,除了可以在类内定义运算符重载函数,也能在类外进行定义。类外定义运算符重载函数通常有两种情况,一种是普通的非成员函数,另一种是使用友元函数。下面为你详细介绍这两种方式。
2025-04-29 17:06:16
689
原创 类和对象(构造函数和析构函数)
如果类包含其他类类型的成员,默认构造函数会调用这些成员对象的默认构造函数来初始化它们。public:std::cout << "AnotherClass 默认构造函数被调用" << std::endl;在这个例子中,当创建MyClass对象obj时,默认构造函数会调用的默认构造函数来初始化member成员。编译器生成的默认构造函数在初始化类时表现较为 “消极”,对于基本数据类型成员不做初始化,对于类类型成员则调用其默认构造函数进行初始化。
2025-04-24 17:51:33
1053
原创 C++类和对象(上)
public成员提供了类的外部接口,方便外部代码与类进行交互。private成员用于封装类的内部实现细节,保证数据的安全性。protected成员在继承体系中发挥作用,允许派生类访问基类的特定成员。不过在现阶段对于我们来说private和protected是没啥区别的,后面讲继承的时候protected和private的区别才会体现出来。成员变量的类型和数量。内存对齐规则。静态成员变量不占用类对象的内存空间。成员函数不占用类对象的内存空间。虚函数会引入虚函数表指针,增加类的大小。
2025-04-23 14:49:36
692
原创 C++入门语法
宏定义是在预处理阶段由预处理器处理的,它利用#define指令把一个标识符定义为一个字符串。在编译代码之前,预处理器会将代码里所有该标识符替换成对应的字符串。处理阶段不同:宏定义在预处理阶段处理,只是简单的文本替换;内联函数在编译阶段处理,由编译器决定是否内联。类型检查:宏定义没有类型检查,内联函数有类型检查,更加安全。代码膨胀:宏定义容易导致代码膨胀,内联函数由编译器控制,能避免不必要的代码膨胀。调试难度:宏定义调试比较困难,因为预处理器替换后的代码可能和原始代码差异较大;
2025-04-21 14:53:49
1153
原创 归并排序(递归、非递归)
今天讲讲归并排序,啥也不说了,大家看图吧:动图:静态图:来,我说不明白的,让AI来讲:所以归并排序的缺点也很明显了,空间复杂度高,需要开一个相同大小的数组。归并的时候,就归并到新数组去,然后再复制到原数组。了解思想之后就开始写代码:sort.hsort.cmain.c。
2025-04-18 13:10:38
230
原创 快速排序(2)
sort.hsort.ctest.c快速排序的非递归写法为什么要用非递归的方式去实现快速排序呢?主要就是怕栈溢出这个问题,但是一般情况下是不会栈溢出的。这里一方面是为了学习,一方面是是为了应付在一些极限条件下,不得不使用非递归的情况。关于“栈溢出”这个词,我会讲完排序之后,给大家介绍一下。或者大家也可以先去问一下AI。所以我们就得用一个数据结构来把这个参数给存起来。那么我们这里用的是啥数据结构呢?那就是栈。主要是借助了栈的后进先出的特点。在这里使用栈来存储要排序的数列的边界,这样就可以使用非递归的方
2025-04-16 17:09:44
325
原创 排序(1)
日常生活中,有很多场景都会用到排序。比如你买东西,在购物软件就有几种展现方式,按照评论数量给你排序出来,让你选,还是说按照价钱高低排序出来让你选。排序其实是一种为了更好解决问题的手段,就像你想问题,思绪混乱的时候,是不是得捋一捋,这捋一捋就是排序。排序在我看来主要作用就是:为了让一个看起来比较混乱的问题变成一个相对明晰的问题,去我们更好的解决问题。那么排序方式多种多样,那么我们就要去学习各种各样的排序,去帮助我们在不同问题,不同情境下选择一个合适的排序。
2025-04-13 15:40:18
1214
原创 普通链式二叉树(1)
前面我们已经讲了用数组来表示二叉树的方式和功能。这节课,我们就来讲讲普通的链式二叉树。啥叫链式二叉树呢,其实很简单,就像链表那样,通过指针标记左右孩子节点。
2025-03-30 13:10:33
773
原创 二叉树(堆)
前文,我们大概的介绍了一下树的一些基本概念,然后这节就主要讲解一下二叉树的其中一种存储方式:用数组存储(顺序存储)。及其一些特殊结构,也就是堆。注意一下就是,这种用数组存储二叉树的方式只适用于完全二叉树。非完全二叉树的话就更加适合链式存储,这个后面讲。
2025-03-19 15:15:26
406
原创 数据结构(树)
树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因 为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的有一个特殊的结点,称为根结点,根节点没有前驱结点除根节点外,其余结点被分成M(M>0)个互不相交的集合T1、T2、……、Tm,其中每一个集合Ti(1<= i <= m)又是一棵结构与树类似的子树。每棵子树的根结点有且只有一个前驱,可以有0个或多个后继因此,树是递归定义的。
2025-03-08 13:36:13
597
1
原创 数据结构(回顾)
还有我们后续用数组或者链表实现的栈和队列,也是顺序表的一种,不过操作比较特殊。那么大家也能察觉,这类数据结构其实比较基础,能具体解决的问题其实不算多。它们在结构中都是1对1的关系,只有一个直接前驱或后继。但是等会讲到的树,就不是这么简单的结构了,已经开始是1对多了。说这么多,都是为了让大家更明白我们前面学的大概是什么东西,也为了和后续学的东西有个区别。这里给大家做个比喻,我们最开始学的数组,就其实像是大米,小麦。
2025-03-07 18:56:56
924
原创 数据结构(队列)
因为队列是在队头出数据,也就是头部删除数据,那么顺序表要删除头部数据需要一个个的移动数据进行覆盖。所以我们优先选择链表实现。连头都没有,那是不是空的。或者pq->tail==NULL。和栈类似,也有两种实现方式。一种是数组,也就是顺序表,一种是链表。两种方式都是可以的,不过相比之下,链表更优一些。获得队列的长度(有效元素的个数)
2025-03-07 14:26:11
641
原创 有效的括号(栈)
输入:s = “()[]{}”输入:s = “([])”,判断字符串是否有效。输入:s = “()”输入:s = “(]”然后题目提供了一个函数。
2025-03-06 16:58:30
275
原创 (数据结构)双向链表
前面链表部分,咱们着重讲解了不带头单向不循环链表,简称单链表。那么链表其实也分很多种类适用于各种各样的场景。通过单链表的学习,其实我们已经大致了解了链表的绝大多数的内容,所以接下来我通过再为大家讲解一个带头双向循环链表,那么剩下的链表的种类大家就可以各自组合,各自书写了。链表种类:两种代表链表:无头单向非循环链表:结构简单,一般不会单独用来存数据。实际中更多是作为其他数据结构的子结构,如哈希桶、图的邻接表等等。另外这种结构在笔试面试中出现很多。
2025-03-03 21:11:34
1000
原创 数据结构(顺序表)(1)
也就是说静态顺序表的大小是定了的,一开始你给它初始化的时候给了多少空间,它就只能用多少空间。就像一开始就定义了一个10个整型的数组一样,你只能用这10个整型的空间。同样,我们先分析一波先:(为什么先分析呢,因为如果按部就班的用错误例子讲解的话,太费劲了,所以就先分析一波,把为什么这么写讲清楚)顺序表其实就是我们的数组,它的样式就是数组这个模样的。所以顺序表主要就是分为两类顺序表,一种是静态顺序表,一种是动态顺序表。而且静态顺序表在于处理数据的增加,删除,查找,和修改的时候,维护起来也十分的笨拙,不方便。
2024-07-24 14:19:46
693
原创 初解Linux(2)&&Linux环境搭建(使用云服务器搭建)
因为今天这篇主要是环境搭建,每一步都很重要,虽然很简单,但是也要注意。如果要使用云服务器搭建Linux环境的,务必先看完全文,大概知道每一步,知道每一步会遇到什么,这时候再开始跟着文章搭建。
2024-07-23 12:25:58
395
原创 初解Linux(1)
今天先是介绍一些主要的Linux底下的一些基础概念,基础且重要。明天会在本文的基础上,初步讲解一些Linux的基础指令。本文属于本人学习后的总结思考,可能会出现理解偏差和错误,如有,请大家理性指出讨论。
2024-07-22 21:29:35
1117
原创 数据结构前言(时间复杂度,空间复杂度,讲解)
数据结构是计算机存储,组织数据的方式,指互相之间存在一种或者多种特定关系的数据元素的集合。人话:我的理解是数据结构通俗来说就是计算机这个东西,它里面保存数据,保存元素的方式,不同方式即不同结构。这个方式有很多种,一般通常情况下,我们初级阶段接触到的就是他们是同一类数据就保存在一起,这些数据之间的关系就是只有一种,他们是同类的数据。就好比如数组,它就是一个最简单的数据结构,数组是一种存储某类型数据,某类型元素的方式,存在其中的数据和元素都是同类型的。
2024-07-21 22:53:31
739
1
原创 (Typora下)markdownd的使用说明
这是我第一次用md语法来进行文章的书写,总的体验下来感觉是不难的,主要是自己动手亲自写一下,体验一下。写md语法说明也是一次很好的锻炼,大家也可以尝试一下。up主视频底下评论区有源文件,大家可以自行下载练习。这是一个苹果。↩︎。
2024-07-21 16:45:54
1081
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人