自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 了解Linux 中 make 与 Makefile

test依赖的文件test.o不存在,继续往后找,找到test.o依赖test.s不存在,继续往后找,...到test.i依赖test.c文件存在,就执行gcc -E test.c -o test.i生成test.i文件,依次往上执行(像一个栈的过程)。.PHONY:让目标文件对应的方法总是被执行(让依赖方法忽略掉时间对比)会构建 Makefile 中的第一个目标文件(默认目标)。会解析目标的依赖关系,递归检查所有依赖文件是否需要更新。:依赖文件(目标构建所需的文件或目标)会构建clean目标。

2025-02-08 17:56:55 918

原创 Linux文件权限

Linux权限管理是系统管理的核心内容之一。通过合理的用户分类、文件访问者分类、文件类型和基本权限的设置,以及灵活的权限设置方法和特殊权限的应用,可以有效地保障系统的安全性,同时满足不同用户的需求。

2025-01-26 15:28:56 766

原创 C++ lambda表达式

Lambda表达式是C++11标准引入的一种匿名函数,它允许你在需要函数的地方直接编写代码块,而无需定义一个完整的函数。Lambda表达式通常用于简化回调函数、简化STL算法的使用等场景。

2025-01-24 23:21:15 1673

原创 C++11 可变参数模版

C++11的新特性可变参数模板,这是一种允许模板函数或模板类接受任意数量参数的特性。可变参数模板极大地增强了模板的灵活性和表达能力,使得编写泛型代码更加方便。)会计算其操作数的值,但只返回最后一个操作数的值(比如:int a = (1,2*2,3);上面的参数args前面有省略号,所以它就是一个可变模版参数,我们把带省略号的参数称为“参数 包”,)来表示参数包(parameter pack),参数包可以包含零个或多个参数。是一个初始化列表,用于创建一个数组。是参数包展开运算符,它将参数包中的每个参数。

2025-01-24 22:00:28 942

原创 C++11左值引用和右值引用

左值(lvalue)是“左值表达式”(lvalue expression)的简称,它指的是可以出现在赋值操作符左边的表达式,我们可以获取它的地址,一般可以对它赋值(const修饰符后的左值,不能赋值)。特点:持久性:左值通常表示一个对象(如变量、数组元素等),这个对象在内存中有一个固定的存储位置,其生命周期是明确的。可寻址性:左值可以被取地址,因为它们有固定的内存地址。可赋值性:左值可以出现在赋值操作符的左边,表示它可以被赋值。int a = 10;// a 是一个左值。

2025-01-22 22:59:06 735

原创 了解哈希并用线性探测和链地址法解决哈希冲突

顺序结构以及平衡树中,元素在存储结构中的位置与元素的关键码之间不存在直接的对应关系,因此在查找一个元素时,必须要经过关键码的多次比较。搜索的效率取决于搜索过程中元素的比较次数。线性探测缺点:一旦发生哈希冲突,所有的冲突连在一起,容易产生数据"堆积”,即:不同关键码占据了可利用的空位置,使得寻找某关键码的位置需要许多次比较,导致搜索效率降低。插入:通过哈希函数获取待插入元素在哈希表中的位置,如果该位置中没有元素则直接插入新元素,如果该位置中有元素发生哈希冲突,使用线性探测找到下一个空位置,插入新元素。

2024-12-01 20:24:10 1363

原创 红黑树了解并实现插入操作

/ 节点的颜色enum ColorRED,BLACKColor _col;:_kv(kv){}

2024-11-20 21:44:19 616

原创 AVL树的删除方法简单实现

看过前面的AVL树的介绍和插入方法实现,接着可以来学习删除方法的实现。

2024-11-16 16:23:21 1181

原创 AVL树了解并简单实现

AVL树就是在二叉搜索树的基础上引入了平衡因子,因此AVL树也可以看成是二叉搜索树。那么按照二叉搜索树的方式插入新节点调整节点的平衡因子平衡因子 = 右子树高度 - 左子树高度插入的新结点newNode在当前结点cur的左子树,平衡因子--插入的新结点newNode在当前结点cur的右子树,平衡因子++是否要往上更新祖先的平衡因子,要看cur的parent结点所在高度是否发生变化。

2024-11-15 20:13:44 900

原创 C++ set和map了解

set是按照特定顺序存储唯一元素的容器。set中元素的值在容器中不能修改一次(元素始终是const),但可以从容器中插入或删除。map中存放的是真正的键值对<key,value>,set中只存放key,set和map底层都是用红黑树来实现的set中的元素不可以重复(因此可以使用set进行去重)T: set中存放元素的类型Compareset中元素默认按照小于来比较Allocset中元素空间的管理方式,使用STL提供的空间配置器管理。

2024-10-31 14:45:59 746 2

原创 二叉搜索树了解和实现

要删除节点3,找左子树中最右的那个结点2替换3结点再将2结点删除 或者 找右子树最左的结点4​替换节点3再删除节点4——替换删除,让操作变成上面两种情况。对有n个结点的二叉搜索树,若每个元素查找的概率相等,则二叉搜索树平均查找长度是结点在二 叉搜索树的深度的函数,即结点越深,则比较次数越多。以词库中所有单词集合中的每个单词作为key,构建一棵二叉搜索树在二叉搜索树中检索该单词是否存在,存在则拼写正确,不存在则拼写错误。删除节点4,让父亲节点6的左指针指向节点4的左孩子或者右孩子(4的左右孩子都为空)

2024-10-13 14:53:16 893 1

原创 C++多态

多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为。比如Student继承了Person。Person对象买票全价,Student对象买票半价。必须通过基类的指针或者引用调用虚函数被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写在虚函数的后面写上 =0 ,则这个函数为纯虚函数。包含纯虚函数的类叫做抽象类(也叫接口类),抽象类不能实例化出对象。派生类继承后也不能实例化出对象,只有重写纯虚函数,派生 类才能实例化出对象。

2024-10-08 20:13:07 719

原创 C++中的继承

继承机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类(子类)。继承呈现了面向对象程序设计的层次结构。继承是类设计层次的复用。public:protected:// 姓名// 年龄protected:int _stuid;// 学号protected:int _jobid;// 工号学生和老师类都继承了Person类Person是父类,也称作基类。Student是子类,也称作派生类。

2024-10-05 16:06:03 1033

原创 了解list并简单实现

根据上图,list基本结构。

2024-09-24 18:30:59 488

原创 了解vector并简单实现

如图:size = _finish - _start;_start指向起始位置,_finish指向size位置,_end_of_storage指向capacity位置。对于一些方法,大家可以自己下去尝试使用,这里就介绍一下,后面进行模拟实现,没提及的就不是重点。erase:删除position位置的数据,返回删除位置的下一个元素的迭代器。insert:在position之前插入数据,返回新插入元素位置的迭代器。pop_back:尾删。

2024-09-23 19:31:49 1003 1

原创 模版初步了解

比如:当用double类型使用函数模板时,编译器通过对实参类型的推演,将T确定为double类型,然后产生一份专门处理double类型的代码,对于字符类型也是如此。类模板实例化与函数模板实例化不同,类模板实例化需要在类模板名字后跟<>,然后将实例化的类型放在<> 中即可,类模板名字不是真正的类,而实例化的结果才是真正的类。函数模板代表了一个函数家族,该函数模板与类型无关,在使用时被参数化,根据实参类型产生函数的特定类型版本。2. 代码的可维护性比较低,一个出错可能所有的重载均出错。,对于模板函数的使用,

2024-05-22 15:16:09 307

原创 C/C++内存管理

new/delete 和 malloc/free最大区别是:new/delete对于【自定义类型】除了开空间,还会调用构造函数和析构函数new的原理1. 调用operator new函数申请空间2. 在申请的空间上执行构造函数,完成对象的构造delete的原理1. 在空间上执行析构函数,完成对象中资源的清理工作2. 调用operator delete函数释放对象的空间new T[N]的原理。

2024-05-21 16:37:06 599 1

原创 类和对象(下篇)

3. 类静态成员即可用。

2024-05-13 11:52:42 904 1

原创 C++类和对象(中篇3完)

还需要自己实现吗?当然像日期类这样的类是没必要的,但对于Stack类等涉及资源管理就必须要实现(这里跟拷贝构造类似)注意:内置类型成员变量是直接赋值的,而自定义类型成员变量需要调用对应类的赋值运算符重载完成赋值。这两个运算符一般不需要重载,使用编译器生成的默认取地址的重载即可,只有特殊情况,才需。const对象不可以调用非const成员函数。非const对象可以调用const成员函数。修饰类成员函数,实际修饰该成员函数。这两个默认成员函数一般不用重新定义。,表明在该成员函数中。

2024-05-08 09:41:51 393

原创 C++类和对象(中篇2)

3.

2024-04-27 17:34:09 1516 1

原创 C++类和对象(中篇1)

无参的默认构造函数这里把自己显示写的构造函数注释了,在main中创建对象没有报错,下面我们把我们显示写的构造函数放开这里就出错了,Date d1;这里创建对象时调用的是无参构造函数,这里我们显示写了有参的构造函数,编译器就不会默认生成无参构造函数,所以这里找不到无参构造函数就会报错。我们可以在写一个无参构造或用我们前面的知识缺省参数来解决(推荐缺省参数方法)注意:这个类中相当于有两个无参构造函数,Date d1;这个不知道调用无参构造函数,还是缺省构造的函数,调用不明确,所以报错。

2024-04-23 10:51:35 1882

原创 C++类和对象(上篇)

class为定义类的键字className为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略。类体中内容称为类的成员类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。接下来我们来看看类的定义不知道各位是否注意到了类的成员变量前面都有一个_,那为什么要这样写呢所以为了区分这样保留了代码可读性,也实现了初始化以上类的定义还差点意思,我们要先了解访问限定符封装、继承、多态。在类和对象刚开始阶段,主要是研究类的封装特性,那什么是封装呢?

2024-04-21 11:53:38 843 1

原创 C++入门开始(第三部分)

C++11中,标准委员会赋予了auto全新的含义即:auto不再是一个存储类型指示符,而是作为一 个新的类型指示符来指示编译器,auto声明的变量必须由编译器在编译时期推导而得。使用auto定义变量时必须对其进行初始化,在编译阶段编译器需要根据初始化表达式来推导auto 的实际类型。因此auto并非是一种“类型”的声明,而是一个类型声明时的“占位符”,编译器在编 译期会将auto替换为变量实际的类型。

2024-04-05 22:59:40 1962 1

原创 堆排序的实现+应用

建堆消耗时间K,后面剩余N-K个数据与堆顶进行比较,假设后面剩余的每一个元素都与堆顶进行交换,然后向下调整到完全二叉树的最后一层(向下调整到最后一层时间复杂度为logK(树的高度))这个是造数据的代码,数据存入data.txt这个文件中(这个利用文件指针写入数据,看不懂也没太大关系,知道这个函数的作用就行)将剩余N-K个元素依次与堆顶元素比完之后,堆中剩余的K个元素就是所求的前K个最小或者最大的元素。如果有一个关键码的集合K = { , , ,…前k个最大的元素,则建小堆(大的数据会往下沉)

2024-04-04 18:21:01 665 1

原创 C++入门开始(第二部分)

2. 一个变量可以有多个引用3. 引用一旦引用一个实体,再不能引用其他实体。

2024-03-29 18:52:57 289 1

原创 C++入门开始(第一部分)

定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{}中即为命名空间的成员。这样就避免了冲突// 变量// 函数// 类型int data;int main()// 特别注意创建结构体变量使用方法return 0;

2024-03-28 22:25:28 588 1

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

空树(空结点)由一个根节点加上两棵别称为左子树和右子树的二叉树组成。

2024-03-27 15:10:17 780 2

原创 简易版扫雷(数组和函数实践)

根据以上分析我们定义一些常量,后面函数会用这些,后面忘了可以回来看看// 显示出的行// 显示出的列// 实际的行// 实际的列// 地雷个数。

2023-12-15 09:22:09 238

原创 自我介绍及规划

一个想学好编程爱踢球的少年。

2023-12-11 10:11:53 54 1

空空如也

空空如也

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

TA关注的人

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