- 博客(13)
- 收藏
- 关注
原创 C++初阶:泛型编程简介及模板的使用
泛型编程是一种编程范式,其核心思想是编写与特定数据类型无关的代码,使得代码具有更广泛的适用性和复用性。在C++中,泛型编程主要通过模板来实现。
2024-05-07 08:36:06
330
1
原创 C++初阶--类和对象(下)
当创建const变量,调用函数时,会报错,权限放大的问题我们可以在函数后加const使this变成const的 void Date :: Print () const 这个const修饰的是*this。3.若未显式定义,编译器会生成默认的拷贝构造函数。友元函数可以直接访问类的私有成员,它是定义在类外部的普通函数,不属于任何类,但需要在类的内部声明,声明时需要加friend关键字。传值返回, 先构造一个临时的后定义的先析构全局的,main函数之前就构造了 静态变量,第一次调用时才会构造。
2024-04-29 20:33:47
448
原创 C++初阶--类和对象(上)
以及两个构造函数:一个是无参构造函数,另一个是带参数的构造函数。传引用的效率比传值的效率高 类型转换会先生成临时变量,表达式也会产生临时变量,临时变量有常性,引用时引用的是临时变量所以要加const修饰。:在同一作用域的名字相同的参数列表(参数个数 或 类型 或 类型顺序)不同的函数,当不重载的俩名字相同的函数同时调用会调用歧义。是特殊的成员函数,需要注意的是,构造函数虽然名称叫构造,但是构造函数的主要任务。同一类的对象的成员变量是不一样的,成员函数是一样的,使用同一的函数地址。
2024-04-15 19:48:58
540
1
原创 C语言--数据结构:堆排序(超详细简图!)
当我们创建小堆的时候我们会得到最小值,然后我们将最小值与最后一个数据交换,并将传入向下调整的堆元素个数-1,这样我们就可以保存好最大值;堆排序是一种高效的排序算法,具有稳定的时间复杂度和较低的空间复杂度。它适用于大规模数据的排序,并且相比于其他排序算法,堆排序不需要额外的存储空间。堆排序的主要思想是先将待排序的数组构建成一个堆,然后逐步将堆顶元素与堆的最后一个元素交换,并重新调整堆,使其满足堆的性质,最终得到有序序列。堆的构建和调整操作的时间复杂度均为 O(logn),而总共需要进行 n 次这样的操作。
2024-03-18 20:40:55
307
原创 C语言--数据结构:堆(完全二叉树)
堆是一种完全二叉树,其特点在于它分为大堆和小堆。:在堆中,根节点的值总是大于或小于其子节点的值,这个性质使得堆能够快速找到最大或最小值。:对于具有n个节点的堆,其高度为log2(n),这使得堆的插入和删除操作具有较好的时间复杂度。:通常使用数组来表示堆,其中根节点位于索引0,而子节点i的父节点位于索引floor((i-1)/2)。
2024-03-17 21:42:19
1662
原创 C语言--数据结构:树
树的概念不用记,清楚加粗的和了解其它的即可。树有很多种表示方式如:双亲表示法,孩子表示法、孩子双亲表示法以及孩子兄弟表示法等。我们这里就简单的了解其中最常用的孩子兄弟表示法。
2024-03-15 09:00:00
2067
1
原创 C语言--数据结构: 栈
栈的使用就是先进后出,那么使用什么结构进行先进后出?以及先进后出用什么作用呢?编程语言使用栈来管理函数调用和返回。当一个函数被调用时,其局部变量、参数和返回地址被压入栈中,当函数执行完毕时,这些数据被弹出栈。操作系统使用栈来管理进程的内存分配和释放。每个进程通常都有自己的栈空间,用于存储函数调用、局部变量和其他临时数据。在表达式求值中,栈常用于将中缀表达式转换为后缀表达式,以便更容易进行计算。栈可以用于逆序输出数据。例如,当需要逆序输出字符串或者逆序遍历一个数据结构时,可以使用栈来实现。
2024-03-13 20:14:53
311
原创 C语言--数据结构:单链表
什么是链表,顾名思义就像一个个环环相扣的圈。那我们怎么使用编程语言实现这个链表呢?以及它的作用是什么呢?单链表是一种线性数据结构,由一系列节点组成,每个节点包含一个数据元素和一个指向下一个节点的指针。节点按顺序排列,通过指针链接在一起,形成链表。单链表可以用来存储各种类型的数据,例如整数、浮点数、字符串等等。单链表的节点可以动态分配内存,这意味着它可以根据需要灵活地增加或减少节点,不像数组一样需要在初始化时确定大小。在单链表中,插入和删除元素的操作非常高效,只需要修改节点的指针即可,无需移动其他元素。
2024-03-12 19:17:16
1629
原创 C语言指针:探索内存与数据的连接,基础入门(超详细!)
const修饰指针是C语言中非常有用的一个概念,它指定了一个指针变量为只读,防止对所指向的数据进行修改。通过使用const修饰指针,我们可以提供数据保护、提高代码可读性和可维护性,并允许编译器进行一些优化。在实际编程中,合理使用const修饰指针可以使代码更加健壮和可靠。同时,也应该注意使用const修饰指针的注意事项,以避免潜在的错误。继续学习和实践,你会逐渐掌握const修饰指针的使用技巧,并写出更高质量的代码。在C语言中,野指针是指指针变量存储的地址没有被正确初始化,或者指向了无效的内存地址。
2023-11-22 22:19:01
83
原创 扫雷(简易版)
₍ᐢ.ˬ.⑅ᐢ₎ 也就是说,如果我们要创建9*9的棋盘我们就要扩大成11*11的棋盘,但是我们只打印9*9的棋盘就ok。同时在玩家输入一个一个坐标排雷的时候,我们的程序要在坐标周围排雷,边界上可能会溢出,需要判断重新写代码,所以我们可以设置一个更大的棋盘来搭载空数据,来防止越界。初始结束后我们要将我们的展示棋盘打印出来,再加上坐标,也创建一个函数(这个打印函数也可以在我们敲代码时打印地雷棋盘,以便查找错误。所以我们需要俩二维数组:一个放雷的信息:地雷棋盘,一个展示给玩家看到的棋盘:展示棋盘。
2023-11-03 12:01:25
43
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人