自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【C++ 容器 set】set的相关用法

链接set介绍唯一性:std::set中的元素是唯一的,即集合中不允许重复元素。排序:std::set会根据元素的值自动进行排序,默认情况下,它使用元素类型的比较函数来实现排序。内部实现:std::set使用红黑树作为底层数据结构来实现,这使得它的插入、删除和查找操作的时间复杂度都是O(log n)。使用方法: 要使用std::set,首先需要包含头文件。然后,你可以声明一个std::set对象,并使用Insert()方法向其中插入元素。你还可以使用erase()方法来删除元素,使用。

2024-04-28 23:57:36 716 2

原创 【二叉搜索树】二叉搜索树的用法以及实现

二叉搜索树的用法以及实现

2024-04-28 15:50:37 846 17

原创 【多态】有关多继承和菱形继承的多态

博主会持续更新本篇文章主要讲解多继承和菱形继承的多态的相关内容。

2024-04-26 19:01:35 1206 19

原创 【Linux】权限

权限就是通过一定的条件,拦住一部分人,给另一部分人权力来访问某一种资源。例如:你是腾讯视频。

2024-04-23 23:58:56 671 15

原创 【多态】底层原理

本篇文章主要讲解多态底层原理的相关内容。

2024-04-23 01:37:58 718 4

原创 【多态】初识多态

多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为。比如Student继承了Person。Person对象买票全价,Student对象买票半价。多态构成需要有两个条件:1. 虚函数构成重写;2. 父类的指针或者引用来调用虚函数。

2024-04-22 23:58:28 428 6

原创 【继承】复杂的菱形继承

本篇文章主要讲解菱形继承的相关内容。

2024-04-22 15:22:46 974 4

原创 【C++初识继承】

继承 总的来说:1. 基类private成员在派生类中无论以什么方式继承都是不可见的。这里的不可见是指基类的私有成员还是被继承到了派生类对象中,但是语法上限制派生类对象不管在类里面还是类外面都不能去访问它。

2024-04-20 23:18:04 1123 6

原创 【双指针】

总的来说,在双指针中,经常利用单调性来解决问题,例如这里的 盛最多水的容器、有效三角形的个数、包括两数之和、三数之和、四数之和,还需要多练习来锻炼思维,加油!t=N7T8t=N7T8t=N7T8t=N7T8t=N7T8t=N7T8t=N7T8t=N7T8LeetCode 283. 移动零https://leetcode.cn/problems/move-zeroes/description/

2024-04-18 23:28:30 604 7

原创 STL —— priority_queue

是一个模板类,定义在头文件中,它基于堆(heap)数据结构来实现优先队列的功能。默认情况下,使用作为其底层容器,并且使用比较器(默认是std::less)来决定元素的优先级顺序。在很多情况下,我们需要对一个自定义类型按照某种形式进行排序,例如,对于一种商品,可能对他的评价、价格、销量等情况进行排序,这个时候我们就可以运用仿函数了。// 名字// 价格// 评价{}int main()

2024-04-16 12:45:04 991 6

原创 STL —— stack、queue

deque(双端队列):是一种双开口的"连续"空间的数据结构,双开口的含义是:可以在头尾两端进行插入和删除操作,且时间复杂度为O(1),与vector比较,头插效率高,不需要搬移元素;与list比较,空间利用率比较高。

2024-04-15 23:14:30 865 5

原创 STL —— list

列表(list)是C++标准模板库(STL)中的一个容器,它是一个双向链表数据结构,用于存储元素。与vector不同,列表中的元素在内存中不是连续存储的,而是通过指针相互连接形成链表。这种设计使得列表对于插入和删除操作非常高效,但是在查找特定元素时相对较慢,因为需要按序遍历整个链表。

2024-04-06 16:36:44 841 15

原创 STL—— vector(2)

本篇文章主要讲解vector模拟实现的相关内容。

2024-04-01 16:23:04 759 16

原创 STL —— vector(1)

vector是 C++ 标准库中的一个容器类模板,它提供了动态数组的功能,可以方便地管理和操作元素的集合。vector定义在 头文件中,使用时需要包含该头文件。vector类定义在 std 命名空间中,因此需要使用 std::vector 或者在代码开头添加 using namespace std;来简化使用。vector是一个序列式容器,它以动态数组的形式存储元素,并提供了在数组末尾快速插入和删除元素的功能。vector。

2024-03-29 17:43:07 1075 19

原创 STL —— string(终)

本片文章还是主要讲解 string 类中剩余几个函数的模拟实现:1. swap() 函数的模拟实现在C++库中就有swap()函数的实现,但是为什么要在string类中也要实现一个swap()函数呢?我们可以先看一下库中的实现逻辑:template <class T> void swap ( T& a, T& b ){ T c(a); a=b; b=c;}这里可以看到如果对内置类型,它会调用一次拷贝构造、两次赋值重载、一次析构,而且都是深拷贝,这样

2024-03-27 23:17:44 335 5

原创 STL —— string(3)

大部分的用法我在上一篇已经讲解过了,这边文章主要讲解还有的部分用法以及string类的模拟实现。

2024-03-26 23:52:33 669 17

原创 STL —— string(2)

本篇文章主要讲解string的用法。

2024-03-23 13:27:40 1362 16

原创 STL —— string(1)

int _top;如果要声明定义分离的话,要加入模板参数列表, _top(0){}STL(Standard Template Library)是C++标准库中的一个重要组成部分,提供了丰富的通用数据结构和算法模板。STL的设计目标是提供可复用、高效和类型安全的组件,以便开发人员可以方便地处理各种常见的数据结构和算法问题。

2024-03-21 23:42:25 980 9

原创 C++ —— 内存管理

例如创建链表的操作:public:int _val;printf("请依次输入%d个节点的值:>", n);i < n;

2024-03-20 23:57:49 905 11

原创 C++ —— 类和对象(终)

这两个运算符一般不需要重载,使用编译器生成的默认取地址的重载即可,只有特殊情况,才需要重载,比如想让别人获取到指定的内容,可以返回假地址,例如。,内部类可以通过外部类的对象参数来访问外部类中的所有成员。但是外部类不是内部类的友元。总的来说,如果是读功能的函数,可以加上const,而写功能的函数不加const。构造函数 + 拷贝构造 直接优化成了 构造函数。每个成员变量在初始化列表中只能出现一次;静态成员变量一定要在类外进行初始化。友元 是一种突破封装的方式。内部类就是外部类的友元类。

2024-03-20 13:47:54 852 8

原创 C++ —— 日期计算器

【代码】C++ —— 日期计算器。

2024-03-19 21:50:35 436 3

原创 C++——类和对象(3)

此篇文章讲解六个默认成员函数中的拷贝构造和赋值重载。

2024-03-17 19:41:59 801 8

原创 C++——类和对象(2)

构造函数函数名与类名相同;无返回值;构成重载;在对象实例化的时候自动调用构造函数;如果自己没有编写构造函数那么编译器会帮你自动生成构造函数;对于编译器生成的构造函数中,内置类型不会进行初始化,自定义类型会帮你自动调用他的构造函数;如果自己编写了构造函数,那么编译器会根据函数名修饰调用属于他的构造函数;无参的构造函数、全缺省构造参数、编译器自己生成的构造函数统称为默认构造函数;通常情况下是需要构造函数的。函数名是在类名之前加上~;无返回值无参数;

2024-03-15 10:28:10 1031 11

原创 C++——类和对象(1)

/ 类体:由成员函数和成员变量组成// 一定要注意后面的分号类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。int _month;int _day;int _month;int _day;d1.func();int _month;int _day;

2024-03-15 00:18:11 845 14

原创 C++入门篇(2)

在编程时,常常需要把表达式的值赋值给变量,这就要求在声明变量的时候清楚地知道表达式的类型。然而有时候要做到这点并非那么容易,因此C++11给auto赋予了新的含义。C++11中,标准委员会赋予了auto全新的含义即:auto不再是一个存储类型指示符,而是作为一个新的类型指示符来指示编译器,auto声明的变量必须由编译器在编译时期推导而得。以下是auto的一个用法:函数指针int main()pf1();pf2();

2024-03-13 21:58:56 728

原创 C++入门篇(1)

定义命名空间,需要使用到namespace// 命名空间中可以定义变量/函数/类型int val;

2024-03-13 00:35:16 1046 10

原创 数据结构——栈

栈一共有三个部分,第一需要有个数组来存储数据,第二需要记住栈的容量,第三需要获取栈的大小(即栈中元素个数)。int top;}ST;

2024-03-12 09:57:25 780 2

原创 数据结构——排序(2)

上一篇文章我们讲解了插入排序,选择排序以及交换排序,此篇文章着重于交换排序中的的讲解。

2024-03-10 10:46:03 648 1

原创 数据结构——排序(1)

希尔排序法的基本思想是:先选定一个整数,把待排序文件中所有记录分成个gap组,所有距离为的记录分在同一组内,并对每一组内的记录进行排序。然后,重复上述分组和排序的工作。PS:本篇文章将会讲解插入排序,选择排序以及交换排序,其中交换排序中的快速排序的优化将会在下一篇文章中讲解,本篇文章只会讲解快速排序的Hoare方法,更详细的优化以及其他的一些排序将会在之后的文章中介绍。直接插入排序就是把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列。

2024-03-06 22:50:03 983 3

原创 数据结构——链表

一部分存放所要存放的值;另一部分则存放指针,指向下一个节点的地址。}SLNode;

2024-03-06 00:22:42 977 2

原创 指针进阶(一篇文章即可了解C指针所有内容)

指针数组实际上是指针;我们已经了解:int* pi;能够指向整形数据的指针。浮点型指针:float* pf;能够指向浮点数类型的指针。那数组指针应该就是指向数组类型的指针。例如: int (*p1)[10];// p1先和*结合,说明p1是一个指针变量,指向的是一个大小位10个整型的数组。所以p1是一个指针,指向一个数组,数组的大小是10个整型。// ps:[]的优先级是高于*,所以要加上()qsort()函数是C标准库中用于对数组进行快速排序的函数。base。

2024-03-04 21:40:42 873 1

原创 C语言指针初始

指针的类型决定了,对指针解引用的时候有多大的权限(能操作几个字节)。比如: char* 的指针解引用就只能访问一个字节,而 int* 的指针的解引用就能访问四个字节。

2024-02-25 23:08:41 507 1

原创 顺序表有关笔试题

元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。不要使用额外的数组空间,你必须仅使用。最终,合并后数组不应由函数返回,而是存储在数组。,返回删除后数组的新长度。的元素,并返回移除后数组的新长度。删除重复出现的元素,使每个元素。个元素表示应合并的元素,后。中,使合并后的数组同样按。

2023-11-03 09:10:16 84 7

原创 数据结构——顺序表

第一个是一个任意元素类型的指针;第二个是记录此顺序表的容量;第三个是记录当前顺序表中含有几个元素。//任意元素类型(此处以int为例)int size;// 当前顺序表有多少元素//顺序表的总容量}SL;顺序表的存储空间利用率高、元素访问速度快以及支持随机访问,使其在实际应用中具有重要的作用。然而,顺序表的插入和删除操作较慢,并且大小固定,需要进行扩容。在实际应用中,我们需要根据具体情况来选择合适的数据结构,以提高工作效率。

2023-11-01 22:22:07 93 11

原创 C语言通讯录的简单实现

以上就是对通讯录代码的简单实现,我们成功地实现了一个简单的C语言通讯录。在这个过程中,我们学习了C语言的基本语法和数据结构的应用,掌握了结构体的定义和使用,以及数组的操作等。t=N7T8C语言字符函数和内存函数https://mp.csdn.net/mp_blog/creation/editor/134046041。

2023-10-30 17:26:58 190 8

原创 C语言自定义类型:结构体,枚举,联合

int x;int y;}p1;//声明类型的同时定义变量p1//定义结构体变量p2//初始化:定义变量的同时赋初值。struct Stu //类型声明//名字int age;//年龄//初始化int data;//结构体嵌套初始化//结构体嵌套初始化枚举类型(Enumeration type)是一种在程序中定义命名常量集合的数据类型。枚举类型定义了一组可取值的符号名称,这些名称称为枚举常量或枚举成员。每个枚举常量都与一个整数值相关联,表示该常量在枚举中的位置。

2023-10-28 22:43:54 162 7

原创 C语言字符串函数和内存函数介绍以及模拟实现

一. 字符串函数二. 内存操作函数。

2023-10-26 00:54:27 102 3

原创 三子棋小游戏C语言实现

认识三子棋小游戏2.三子棋的main函数以及菜单页面2.1 menu()函数的实现3.游戏实现3.1 初始化二维数组3.2 棋盘的实现3.3 玩家下棋3.4 电脑下棋3.5 判断输赢函数4.源代码+效果展示。

2023-09-06 17:05:24 82 5

原创 有关C语言中的EOF

关于EOF

2023-06-14 11:34:08 257 3

空空如也

空空如也

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

TA关注的人

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