之前结束了类与对象:今天进行下面部分内容的学习1.C/C++内存分布具体说明:栈又叫堆栈–非静态局部变量/函数参数/返回值等等,栈是向下增长的。栈上的内存分配和释放是通过编译器生成的代码来管理的,通常是通过在函数退出时进行清理来实现的内存映射段是高效的I/O映射方式,用于装载一个共享的动态内存库。用户可使用系统接口创建共享共享内存,做进程间通信堆用于程序运行 ......
21
0
0
2024-05-22
Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用QJson组件的实现对JSON文本的灵活解析功能。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它易于人阅读和编写,也易 ......
24
0
0
2024-05-21
(图片来源于网络)一、set1.1 set特点介绍set的介绍 C++中的set是一个STL容器,它是一个自动排序的集合(即将数据存入set,我们通过迭代器顺序访问出来时,数据是有序的),内部使用红黑树(后面会讲解)来实现。它的特点是不允许重复元素,而且插入元素时自动进行排序。set容器的特点存入set后数据有序: set是按照一定次序存储元素的容器,迭代器 ......
16
0
0
2024-05-18
一、为什么要有动态内存分配​我们已经掌握的内存开辟方式有:int val = 20;//在栈空间上开辟四个字节​ char arr[10] = {0};//在栈空间上开辟10个字节的连续空间​但是上述的开辟空间的方式有两个特点: • 空间开辟大小是固定的。 • 数组在申明的时候,必须指定数组的长度,数组空间一旦确定了大小不能调整int main() { in ......
33
0
0
2024-05-14
前言在上一篇文章我们学习类和对象的过程中,我们不是写了一个日期类嘛。 但是我们之前实现的日期类并不是很完整,我们只是借助它来帮大家学习类和对象的知识。 那这篇文章呢,我们就在之前的基础上,再增添一些功能,实现一个比较完整的日期类,作为一个练习,来帮助我们更好的理解我们之前学过的知识。这是我们之前一起写的不太完整的日期类:代码语言:javascript复制 ......
42
0
0
2024-05-04
这篇文章呢我们接着上一篇的内容,继续C++类和对象的学习。1. 类的6个默认成员函数通过上一篇文章的学习,我们知道如果一个类中没有成员变量,也没有成员函数,啥也没有,那我们把它叫做空类。 即如果一个类中什么成员都没有,简称为空类。比如:代码语言:javascript复制class Date { }; 那现在问大家一个问题:空类中真的什么都没有吗?🆗 ......
35
0
0
2024-05-04
​这篇文章我们开始学习C++中的类和对象。1. 面向过程和面向对象初步认识我们之前学的C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。而C++是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。2.类的引入我们之前在C语言中学过结构体:但是C语言中的结构体只能定义变量,比如:对于这个结构体来说: ......
34
0
0
2024-05-04
前言预处理是C语言的一个重要功能,它由预处理程序负责完成。当对一个源文件进行编译时,系统将自动引用预处理程序对源程序中的预处理部分作处理,处理完毕自动进入对源程序的编译。C语言提供多种预处理功能,主要处理#开始的预编译指令,如宏定义(#define)、文件包含(#include)、条件编译(#ifdef)等。合理使用预处理功能编写的程序便于阅读、修改、移植和 ......
29
0
0
2024-05-04
这篇文章我们一起来学习一下C/C++程序的内存开辟以及柔性数组!!!1. C/C++程序的内存开辟C和C++的内存开辟方式是非常类似的,这篇文章我们就来学习一下C/C++程序的内存开辟。在之前的文章里其实我们简单的介绍过C语言中的内存划分。 大致可以分为:栈区,堆区和静态区:那今天,我们来更加细致的细致的讲解一下C/C++程序的内存开辟。 首先,我们来看一张 ......
27
0
0
2024-05-04
这篇文章,我们一起来学习C语言中的动态内存管理!!!1.为什么存在动态内存分配我们先来想一下,我们现在掌握的开辟内存的方式是什么:是不是就是直接创建一个变量或者数组,然后操作系统给我们分配空间:代码语言:javascript复制int main() { int val = 20;//在栈空间上开辟4个字节 int arr[10] = { 0 };/ ......
33
0
0
2024-05-04
上一篇文章我们学习了多态的语法,想必大家都会有很多疑问,这篇文章,我们就来带大家看看多态是如何实现的,它底层的原理是怎样的…前言需要声明的,本文中的代码及解释都是在vs2022下的x86程序中,涉及的指针都是4bytes。 如果要其他平台下,部分代码需要改动。比如:如果是x64程序,则需要考虑指针是8bytes问题等等1. 虚函数表指针与虚函数表首先,我们来 ......
42
0
0
2024-05-03
1.游戏规则扫雷的详细规则是随便点开一个方格,根据展开方格的数字去推断其相邻九宫格内未展开方格下面是否是地雷,最终任务就是点开所有没有地雷的方格,以找出所有的地雷。 要取得高分,就必须在尽量短的时间内清除所有的地雷。 得分计算方法:扫雷得分=分数基数X难度系数/扫雷时间,其中分数基数为10000,难度系数=每局地雷数/每局总格子数,扫雷时间按毫秒计算。所需要 ......
35
0
0
2024-05-03
1.实现功能本文将采用C语言来实现一个简单的通讯录,要求功能如下代码语言:javascript复制//实现一个通讯录 //1.可以保存100个人的信息 //2.增加人的信息 //3.删除指定联系人的信息 //4.查找 //5.修改 //6.排序 //7.显示所有联系人 下面我们来一步步实现2.实现细节与具体思路1.主程序设计首先,设计一个主程 ......
40
0
0
2024-05-03
1. 单继承在上一篇文章中,我们给大家演示的其实都是单继承。单继承的概念:单继承:一个子类只有一个直接父类的继承关系为单继承2. 多继承然后呢C++里面还支持多继承,那什么是多继承呢?一个子类有两个或以上直接父类时称这个继承关系为多继承比如一个类表示汽车,另一个类表示飞机。现在你希望创建一个新的类,使得它既可以像汽车一样在地上跑,又可以像飞机一样在天上飞,即 ......
33
0
0
2024-05-03
一.AVL树的概念我们知道,二叉搜索树的效率很高,如果数据有序或接近有序二叉搜索树将退化为单支树,查 找元素相当于在顺序表中搜索元素,效率低下,为了解决这个问题,AVL树(平衡二叉树)就出现了。AVL树的性质:它的左右子树都是AVL树左右子树高度之差(简称平衡因子)的绝对值不超过1(-1/0/1)(右子树-左子树)上图就是一个AVL树,每个节点上的数字为这个 ......
30
0
0
2024-05-03