自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++基础知识学习记录—多态

抽象类1、抽象类只能作为基类,不能初始化对象2、抽象类一定有纯虚函数,有纯虚函数的类一定是抽象类纯虚函数是一个特殊的虚函数,没有函数体 语法: virtual void 函数名() = 0;3、抽象类是给派生类提供算法框架。//注意:1、派生类没有实现所有抽象基类的纯虚函数,这样的派生类也是一个抽象类。//2、抽象类一定会作为其他类的基类,其析构函数必须设置为虚函数,因此抽象类可以支持多态。

2025-02-24 16:12:48 434

原创 C++基础知识学习记录—继承

1、非静态成员对象,先调用对象成员的构造函数,在调用自己类的构造函数,析构函数相反。2、静态成员在程序运行时创建,程序结束时销毁3、父子继承时,构造函数先父后子,析构函数,先子再父。

2025-02-20 16:04:05 881

原创 C++基础知识学习记录—模版和泛型编程

STL的代码从广义上讲分为三类:algorithm(算法)、container(容器)和 iterator(迭代器),几乎所有的代码都采用了模板类和模板函数的方式,这相比于传统的由函数和类组成的库来说提供了更好的代码重用机会。1、map容器里的元素都是一组键值对,键值对的键(key)是唯一的,通常是string类型,键值对的值(value)可以是任意类型。泛型编程提出的目的是:发明一种语言机制,能够实现一个标准的容器库(标准模板库 STL),标准容器库可以做到编写一般化的算法,● 迭代器:指示元素位置。

2025-02-19 20:18:36 1134

原创 C++基础知识学习记录—string类

/字符串s中从pos开始的n个字符连接到字符串结尾。//同operator+=(const string& str)string& insert(int pos, const string& str);

2025-02-18 20:19:26 474

原创 C++基础知识学习记录—运算符重载

● 运算符重载只能限制在C++已有的运算符范围内,即不能创建新的运算符。● 运算符重载不能改变运算符的优先级和结合性。● 运算符重载不能改变运算符的操作数和语法结构。● 无法更改已有的基本数据类型运算规则,只能应用于包含用户自定义类型的运算。● 运算符重载应该保持与原有运算符功能类似,避免没有目的地滥用运算符重载。● 运算符重载函数不支持参数默认值的设定。●一般情况下,单目运算符建议使用成员函数重载,双目运算符使用友元函数重载。

2025-02-18 20:08:39 930

原创 C++基础知识学习记录—友元

类实现了数据的隐藏与封装,类的数据成员一般定义为私有成员,仅能通过类的成员函数才能读写。如果数据成员定义为公共的,则又破坏了封装性。但是某些情况下,需要频繁读写类的数据成员,特别是在对某些成员函数多次调用时,由于参数传递、类型检查和安全性检查等都需要时间开销,而影响程序的运行效率。友元是一种定义在类外部的普通函数,但他。

2025-02-18 17:45:32 661

原创 C++基础知识学习记录—this指针和const关键字

3、哪个对象调用成员函数,this指针就指向哪个对象,访问哪个对象的属性。虽然不用手写this指针,但是编译器都会使用this指针来调用成员。2、类的成员函数(包括构造函数和析构函数)中都有this指针,因此this指针只能在类内部使用。1、this指针是一个特殊的指针,存储的对象的首地址,成员函数(类内)都隐含一个this指针。类中成员的调用都是依赖于this指针的,默认情况下由编译器自动添加。当返回值是对象引用时,可以返回*this,此函数支持链式调用。可以用this指针来区分同名参数和成员属性。

2025-02-12 21:25:36 284

原创 C++基础知识学习记录—作用域限定符

类里函数声明和定义分离时,需要用类名::指明函数属于哪个类,指明函数范围public://类内声明无参构造函数Demon();//类内声明成员函数~Demon();//类外定义无参构造函数cout << "创建了一个对象" << endl;cout << "成员函数:" << s << endl;cout << "销毁了" << endl;Demon d;return 0;

2025-02-12 21:15:54 402

原创 C++基础知识学习记录—构造函数

2、如果没有显式给出构造函数,编译器会给出默认的构造函数(参数为空,并且函数体也为空),并没有实际操作,如果给出任意的构造函数,系统默认的构造函数就不存在了。构造函数分为有参构造函数和无参构造函数,也就是说构造函数可以重载。在现阶段,构造初始化列表是一种更简单的给成员变量赋予初始值的写法。4、有返回值,但是不写返回值类型,也不可以写void。但函数重载和参数默认值不能同时使用,否则会出现错误。有参的构造函数的形参,也支持默认参数。3、构造函数是在创建对象的时候,如上面的构造函数可以简写为。

2025-02-11 19:19:36 427

原创 C++基础知识学习记录—类

用new关键字创建,对象类型的指针(Computer *) ,指向new关键字开辟的空间。使用->的方式进行调用,堆内存对象需要使用delete关键字手动销毁,如果不销毁会造成内存泄漏,导致程序的卡顿。上述代码定义了人类的属性:姓名和年纪,都进行了封装,在类外部修改不了该属性,QT页面定义的属性是上锁状态,只能通过公共的借口来进行读写。通常是把类中的属性变为私有(private),如果外部访问需要公共接口,可以控制属性的读和写的权限,提高了程序的。类:类是一个抽象的概念,用于描述同一类对象的特点。

2025-02-11 17:35:20 561

原创 C++基础知识学习记录—补充

string是C++新增的字符串类,注意string不是C++的基本数据类型。使用时需要引入头文件#include <string>string作为新的字符串类型,可以在绝大多数情况下替代原有的字符串表示方式,不必担心字符串长度等问题。string类内置了一些与字符串相关的函数方便程序员调用(后续补充更多)。string类支持下标与。

2025-02-10 20:47:18 350

原创 C++基础知识学习记录—引用

概念:引用相当于给变量取个别名对引用进行操作与直接操作变量相同,注意引用类型与变量类型一致。

2025-02-10 19:39:20 460

原创 C语言数据结构编程练习-排序算法

思路:比较相邻的两个数,左边大于右边交换一趟排下来最大的在右边时间复杂度:O(n2)

2025-02-06 21:07:53 405

原创 数据结构学习记录-算法

算法(Algorithm)的概念在计算机科学领域中几乎无处不在,在各种计算机系统的实现中,算法的设计往往处在核心的位置。计算机的问世是20世纪算法是计算机科学的重要基础,就像算盘一样,人们需要为计算机编制各种各样的“口诀”即算法,才能使其工作。软件(项目)=程序+文档程序=数据结构+算法软件(项目)= 数据结构+算法 + 文档。

2025-01-22 19:49:59 1313

原创 C语言数据结构编程练习-二叉树的先序 、中序和后序

【代码】C语言数据结构编程练习-二叉树的先序 、中序和后序。

2025-01-22 17:10:13 291

原创 数据结构学习记录-树和二叉树

关于树的定义和基本术语1、是一种非线性的数据结构,又叫做树型数据结构。2、树是n(n >=0)个节点的有限集合,当n=0时,叫空树3、非空树必须满足两个条件:1、有且仅有一个特定的称为根的节点,2、其余的节点可以分为m(m >=0)个互不相交的有限集合T1、T2、......、Tm,其中每一个集合又是一棵 树,并称其为根的子树树的相关概念:1、节点的度:树中一个节点的孩子个数称为该节点的度, 所有节点的度的最大值是2、分支节点:度大于0的节点称为分支节点。

2025-01-21 20:42:15 1657

原创 C语言数据结构编程练习-通过单链表实现队列的操作

【代码】C语言数据结构编程练习-通过单链表实现队列的操作。

2025-01-21 20:20:38 234

原创 数据结构学习记录-队列

创建队列需要定义两个结构体1、一个用来保存节点的链式结构,2、一个用来记录队头和队尾}QNode;//队头//队尾}Queue;

2025-01-21 20:18:22 470

原创 C语言数据结构编程练习-顺序栈的操作

【代码】C语言编程数据结构编程练习-顺序栈的操作。

2025-01-20 20:43:36 259

原创 数据结构学习记录-栈

入栈,即向栈中插入元素,需要注意的是,插入第一个元素之前,栈顶和栈底均指向-1,在插入第一个元素时,需要将栈顶和栈底均置0,因为栈顶he栈底为-1,表示没有插入任何元素,即空栈,后面再入栈时,只需更改栈顶元素即可,栈底不做修改。弹栈,即弹出栈顶元素。出栈遵循后进先出的原理,因此每次调用出栈函数,只删除最后一个元素,还需要改变栈顶的指向,使栈顶的指向向下移动一个。清空栈,这里不是销毁栈,而是把栈内每一个元素都置为0,并不改变栈内元素个数,并不改变栈顶和栈底的指向,从栈底开始,到栈顶结束,一次输出栈内元素。

2025-01-20 20:40:22 555

原创 数据结构学习记录-双向链表

带头双向循环链表是链表中带头(哨兵位)、双向、循环三种属性的结合体;带头即带哨兵位,哨兵位只负责存储第一个具有有效数据的节点,本身不存放数据,该处因为为双向循环链表,代表也可访问该链表的尾节点;双向即表示,每个节点不仅能访问该节点的后一个节点,同时也可访问本节点的前一个节点;循环即表示,第一个节点的prev指向尾节点带头双向循环链表虽然在结构中是所有链表中最为复杂的,但是相比较于单链表的优势在于不需要多次对链表为空进行判断,避免了边界问题;

2025-01-17 21:47:54 935

原创 C语言数据结构编程练习-双向带头循环链表的创销增删改查

【代码】C语言数据结构编程练习-双向带头循环链表的创销增删改查。

2025-01-17 21:45:49 403

原创 C语言数据结构编程练习-单向不带头链表的操作

单向链表是由若干个节点组成的数据结构,每个节点包含两个部分:数据域和指针域。数据域存储节点的数据,指针域存储下一个节点的地址。

2025-01-16 20:53:45 595

原创 数据结构学习记录-链表

链表是一种基本的数据结构,它由一系列节点组成,每个节点包含一个值和指向下一个节点的指针。,而不需要预先知道数据的数量。与数组不同,链表中的节点不一定是连续的存储空间,因此可以有效地利用内存空间。特点: 优点:不要求大片连续空间,改变容量方便。可以动态的添加和删除节点缺点:不方便随机存取,要耗费一定空间存放指针。

2025-01-16 20:50:13 142

原创 C语言数据结构编程练习-用指针创建顺序表,进行创销和增删改查操作

main.c文件02.h 头文件02.c 文件。

2025-01-15 20:42:02 485

原创 C语言数据结构编程练习-用数组创建顺序表,进行创销和增删改查操作

【代码】C语言数据结构编程练习-用数组创建顺序表,进行创销和增删改查操作。

2025-01-15 20:21:03 128

原创 数据结构学习记录-顺序表

就是把线性表中的所有元素按照其逻辑顺序依次存储到指定位置开始的一块连续的存储区域。线性表中的第1个元素的存储位置就是指定的存储位置,第i个元素的存储位置紧接第i-1个元素的存储位置的后面。

2025-01-15 20:09:45 241

原创 数据结构学习记录-线性表

线性表的定义:线性表的特点:线性表有顺序表和链表:操作数据结构的思路:创销、增删改查

2025-01-15 20:06:18 209

原创 数据结构学习记录-数据结构概念

数据结构是计算机存储,管理数据的方式。数据必须依据某种逻辑联系组织在一起存储在计算机内数据结构研究的就是这种数据的存储结构和数据的逻辑结构。

2025-01-15 19:48:27 656

原创 C语言基础学习记录-文件管理

当我提到输入时,这意味着要向程序(或内存)中写入一些数据。输入的数据来源可以是从 键盘中、从文件 中 或从 网络中。C语言提供了一系列 内置的函数 来读取给定的输入,并根据需要写入到程序中。当我们提到输出时,这意味着要在屏幕上、打印机上或任意文件中 显示(或保存)一些数据。同样,C语言提供了一系列 内置的函数来输出数据到指定的载体上。

2024-12-27 19:44:07 985

原创 C语言基础学习记录-动态分配内存

在之前讲数组的时候,介绍过数组的长度是预先定义好的,在整个程序中固定不变,但是在实际的编程中,往往会发 生这种情况,即所需的内存空间取决于实际输入的数据,而无法预先确定。为了解决上述问题,C语言提供了一 些内存管理函数,这些内存管理函数可以按需要动态的分配内存空间,也可把不再使用的空间回收再次利用。

2024-12-27 10:19:41 754

原创 C语言基础学习记录-内存管理

1.认识内存的分区内存有两种:物理内存和虚拟内存1.物理内存:实实在在存在的存储设备 (硬件)2.虚拟内存:操作系统虚拟出来的内存在运行程序的时候,操作系统会将虚拟内存进行区分划分为5个分区,分别是:代码区(text)、数据区(data)、未初始化数据区(bss)、堆区(heap)、栈区(stack)有人有时候直接把数据区data和未初始化数据区bss合起来叫做静态区或者全局区代码区(text segment)○加载的是可执行文件代码段,所有的可执行代码都加载到代

2024-12-27 09:46:18 766

原创 C语言基础学习记录-宏定义和typedef

1、 宏可以看作为一些命令的集合。它是一种预处理器指令,在预编译阶段将宏名替换为后面的替换体。2、#define 机制包括了一个规定,允许把参数替换到文本中,这种实现通常称为宏(macro)或定义宏(define macro)。3、 #define的替换规则: 在程序中扩展#define 定义符号和宏时,需要涉及几个步骤:- 在调用宏时,首先对参数进行检查,看看是否包含任何由 #define 定义的符号。如果是,它们首先被替换。- 替换文本随后被插入到程序中原来文本的位置。

2024-12-25 19:15:05 551

原创 C语言基础学习记录-共用体和枚举

● 共用体union是一个能在同一个存储空间存储不同类型数据的类型● 共用体所占的内存长度等于其最长成员的长度。● 同一内存段可以用来存放几种不同类型的成员,但每一瞬时只有一种起作用● 共用体变量中起作用的成员是最后一次存放的成员,在存入一个新的成员后原有的成员的值会被覆盖● 共用体变量的地址和它的各成员的地址都是同一地址共用体的主要用途有:1 节省内存空间:当多个成员变量不会同时使用,但需要共享同一块内存空间时,可以使用共用体来节省内存。

2024-12-25 19:07:49 482

原创 C语言基础学习记录-结构体

先声明结构体类型再定义变量名在声明类型的同时定义变量方法一:先声明结构体类型,再定义变量名(1)第一步struct 结构体名{成员列表(2)第二步struct 结构体名 变量名方法二:定义结构体类型的同时,定义变量struct 结构体名{成员列表}变量名;方法三:定义结构体类型的同时,定义变量struct {成员列表}变量名1,变量名2;//也可以用typedef创建新类型 后续会用到int a;char b;double c;} Simple2;int age。

2024-12-24 15:59:13 729

原创 C语言学习记录-数组、函数和指针

用来存放指针的数组被称为指针数组,它要求存放在数组中的指针的数据类型必须一致。

2024-12-23 21:41:27 778

原创 C语言基础学习记录-指针

指针。

2024-12-20 19:26:12 1069

原创 C语言学习记录-字符串数组

没有字符串这种数据类型char的数组数字0字符 '\0' 等价字符串是一种特殊的char的数组如果char数组没有以数字0结尾,那么就不是一个字符串,只是普通字符数组。

2024-12-19 21:01:47 1126

原创 C语言学习记录-C语言中常用的库函数

使用malloc、calloc或realloc等函数来动态地分配和重新分配内存。stdlib.h 中定义的变量类型:这是无符号整数类型,它是关键字的结果。

2024-12-18 20:48:41 1108

原创 C语言基础学习记录-数组

定义数组的语法格式:类型 数组名[元素个数];// 数组 arr ,里面包含10个成员,每个成员都是int 类型或者 #define NUM 10注意:声明数组时,必须给出数组的大小。数组名不能与其他变量名相同,同一作用域内是唯一的其下标从0开始,因此5个元素分别为arr[0] arr[1] arr[2] arr[3] arr[4]注意:数组角标越界:假设数组有n个元素,如果使用的数组的下标小于0,或者大于n-1,就是数组越界访问了,超出了数组合法空间访问。

2024-12-18 19:42:47 981

空空如也

空空如也

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

TA关注的人

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