- 博客(42)
- 收藏
- 关注
原创 【优先算法】滑动窗口
滑动窗口实际上是属于双指针解法的一种,但这种解法的特点是双指针移动的方向始终相同。被两个指针框起来的范围忽大忽小像窗口一样,故叫做滑动窗口。✨✨欢迎大家来到Celia的博客✨✨。
2024-11-27 15:21:03
1074
原创 【C++】set/map 与 multiset/multimap
在C++中,map是一种关联性容器,用于存储唯一的值。底层用二叉搜索树(红黑树)来实现。用于对数据的有序存储和快速查找。map与set的底层实现几乎一模一样,不同的地方在于,map中存储的是一个键值对pair。pair中有两个成员,分别为T1类型的key,和T2类型的value。在map中,value的值可以改变,key的值不能直接改变。而二叉树中大小比较的规则是按照key的值进行比较的。
2024-10-12 21:09:06
725
原创 【数据结构】二叉搜索树
左子树所有的值要小于根节点的值,右子树所有的值要大于根节点的值。这样一来,当查找一个值的时候,如果比当前节点的值小,就向左遍历;如果比当前节点的值大,就向右遍历。这样的搜索模式最好的时间复杂度为logN。二叉搜索树举例class BSTNode //每个节点的定义public:K val;
2024-09-18 19:31:33
2605
原创 【C++】多态
多态的实现需要在继承体系下才能完成。多态是一个继承关系下的多个对象,去调用同一个函数,却产生了不同的行为。必须用基类的指针或者引用来接收派生类的对象。必须使用指针或者引用来调用该函数。该函数必须是虚函数。派生类必须重写/覆盖基类的该函数。
2024-09-14 14:02:37
1228
原创 【C++】继承
/ 派生类 继承方式 基类// ↓ ↓ ↓public:可以通过如上方式来让Student类继承Person类,这时,Person的成员可以看作被Student继承下来。Student中就具有了姓名、年龄等从Person中继承下来的成员,并可以使用它们。
2024-09-14 14:01:52
1221
原创 【C++】string类
在C++中,string类可以简单理解为数据类型为char的顺序表。capacity:总容量size:储存的元素个数指针:指向动态开辟的空间string类定义在命名空间std中,类中定义了许多成员函数来管理动态开辟的空间。string();默认构造函数,构造一个空串,长度为0。拷贝构造,使用一个现有string对象构造。使用现有字符串的一个区间来构造。(npos是一个很大的数,通常表示字符串末尾)使用一个指针指向的字符数组来构造。使用指针指向的字符数组中复制前n个字符。
2024-09-04 23:32:18
1107
原创 【C++】模板初阶
定义模板需要用到关键字template,后面跟上<>,在尖括号中包含需要替代的数据类型种类,格式为 class T 或 typename T(不能使用struct T)。T,为指代的类型名,仅仅具有指代作用,可以是任意的名字。如果有多个类型种类,用逗号隔开。T tmp = x1;x1 = x2;x2 = tmp;编译器会根据传入的形参来自动匹配T具体的数据类型。编译器会根据T的类型来根据模板自动生成一个函数。
2024-08-08 17:20:59
969
原创 【C++】内存管理
class Apublic://构造函数//拷贝构造_b = aa._b;//析构函数private:int _a;int _b;A c2(3, 2);A c3(4, 2);//默认构造//传值构造//拷贝构造//匿名对象:构造匿名对象 + 拷贝//隐式类型转换:构造临时对象 + 拷贝//默认构造//拷贝构造//隐式类型转换:构造临时对象 + 拷贝//匿名对象:构造匿名对象 + 拷贝。
2024-08-07 15:10:33
1085
原创 【C++】类和对象(下)
必须在初始化列表中进行初始化。在类中成员变量声明的部分,可以给缺省值,这个缺省值会给没有显式在初始化列表中的成员使用(C++11版本支持)。
2024-08-04 16:49:05
819
原创 【C++】类和对象(上)
定义类的关键字是class,后面加上类名和一对花括号{},最后还需要在花括号后加上分号。class Celia //声明一个Celia类//类的主体//这里要有分号类的主体内叫做类的成员:可以包含各种变量、函数。在类中的变量叫类的属性或成员变量;在类中的函数叫做类的方法或成员函数。在C++中,struct也可以定义类,但是使用class定义类较为常见。在类中实现的所有函数默认是被inline修饰的内联函数。
2024-07-30 11:33:43
729
原创 【C++】C++入门基础
C++(c plus plus)是一种计算机高级程序设计语言,由C语言扩展升级而产生 ,最早于1979年由本贾尼·斯特劳斯特卢普在AT&T贝尔工作室研发。C++既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计。C++几乎可以创建任何类型的程序:游戏、设备驱动程序HPC云桌面嵌入式和移动应用等。甚至用于其他编程语言的库和编译器也使用C++编写。
2024-07-29 00:06:31
676
原创 【经典链表OJ】环形链表
我们可以使用快慢指针来解决此问题: 上述解题思路中,快慢指针的步数差值为1,则快慢指针一定会相遇。那么如果它们的差值不为1呢?会不会有永远遇不到的可能性存在呢?
2024-07-10 11:09:30
983
原创 【JAVA SE】抽象类和接口
在面向对象的概念中,类是用来详细描述一个对象的,但若是一个类没办法完全的描述一个对象的时候,我们通常会把这个类设置成抽象的,也就是抽象类。
2024-06-03 09:05:43
946
4
原创 【JAVA SE】多态
上一个篇章中,我们已经初步了解了继承的概念以及使用,在本篇文章中,将会介绍在Java中依赖于继承的一种新的现象:多态。
2024-05-30 15:50:20
1155
12
原创 【JAVA SE】继承
在Java中,我们可以定义一个类来描述一个对象,但在某些情况下,被描述的对象的属性比较特殊,甚至某些对象之间还会有一定的关联,这个时候就需要通过继承来实现这些复杂的关系。
2024-05-30 14:32:51
781
2
原创 【JAVA SE】类和对象
在我们之前的学习过程中,在写代码的时候都需要去考虑一步一步的逻辑过程,也就是面向过程去编写代码。而JAVA的主要思想是面向对象,那什么是面向对象呢?
2024-05-19 14:41:23
1076
12
原创 【JAVA SE】初识JAVA
Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。Java 语言源于 1991 年 4 月,Sun 公司博士 领导的绿色计划(Green Project) 开始启动,此计划最初的目标是开发一种能够在各种消费性电子产品(如机顶盒、冰箱、收音机等)上运行的程序架构。
2024-05-14 11:21:30
908
2
原创 【C语言】编译与链接
在C语言代码进行实现的时候,都存在两个不同的环境。一个是翻译环境,在这个环境中C语言的源代码会被翻译成可以执行的机器指令,也就是二进制指令。另一个是执行环境,用于执行这些被翻译后的机器指令。本篇文章将会详细介绍在翻译环境中所进行的一系列处理过程。
2024-05-09 16:51:58
1205
1
原创 【C语言】文件操作详解
我们知道,C语言程序是储存在电脑的内存中的,如果程序退出,内存会被回收,保存在变量中的数据就会被删除,如果我们想把程序运行时产生的数据永久性的保存(存储到在磁盘上),就会用到有关文件的操作,本篇文章将会介绍C语言中有关文件操作的内容。
2024-03-29 09:47:44
1647
原创 【C语言入门】自定义类型:结构体
在C语言中,分为内置类型和自定义类型,内置类型譬如int,char等,自定义类型分为结构体,联合体和枚举类型。本篇文章将会详细介绍自定义类型中的结构体类型。
2024-03-23 20:22:07
1049
2
原创 【C语言入门】浮点型数据在内存中的存储
我们知道,整型数据在内存中以补码的形式存储,字符型数据在内存中以ASCII码的形式存储,其本质都是一个二进制序列,但在C语言中,浮点型的存储方式与其他数据类型大不相同,本篇文章将会简单介绍浮点型数据在内存中的存储方式。
2024-03-17 21:00:27
973
2
原创 【C语言入门】实现strlen的三种方法
strlen函数用于统计字符串中的字符数量(\0前的字符数量),包含在头文件中,本篇文章将介绍实现strlen函数的三种方法。
2024-03-11 16:03:21
1008
原创 【C语言入门】指针详解(1)
我们知道,数字5,也就是整型数据可以用int型变量来储存,浮点型数据可以用float和double型变量来储存……那么对于地址来说,也有一种专门来存储地址的变量,我们把这种变量叫做指针变量。int a;//创建整型变量a,其中存储的是整型int *b;//创建整型指针变量b,其中存储的是整型数据的地址我们可以这样理解:*代表a是一个指针变量,int代表这个指针变量所指向的数据类型是一个整型(int)类型的对象。char *a;//字符型指针变量float *b;//单精度浮点型指针变量。
2024-03-10 22:17:04
947
原创 【C语言入门】交换两个变量的值(三种方法)
这三种方法都可以交换两个变量的值,但运用加减法有可能导致变量值的溢出,另外两种就运行效率而言,创建额外变量的方法效率是最高的,可读性也是最高的,大家可自行斟酌~
2024-01-24 15:33:18
4709
原创 VS2022 实用调试技巧
当我们的程序出现bug时,我们需要找出问题所在,然后解决问题重新测试,这个找出问题的过程就称之为调试,英文叫做Debug,意为“消灭bug”。
2024-01-21 15:29:56
2885
2
原创 猜数字游戏(C语言实现-函数版)
这里的rand()会每次产生一个随机数,再通过min+rand()%(max-min)这个表达式把随机数的范围限制在自己输入的范围内。在这里先输出菜单,再输入变量x,只要x的值不为0,游戏就会被一直执行下去,同时会根据x的值进入不同的case。在这里,设置了一个计数器,每输入一个在指定范围内的值时,计数器就会减一,当计数器为0时,会强制退出游戏。在主函数中 srand((unsigned)time(NULL))是用来产生随机数的,后续会详细介绍。2.创建一个游戏函数game,负责游戏逻辑的实现。
2023-12-13 09:00:41
818
原创 【C语言入门】数据类型和变量
在C语言中,数据类型分为内置类型和自定义类型,在内置类型中,我们可以用整型来描述整数,用浮点型来描述小数等。本篇文章主要讲述数据类型中的内置类型。
2023-12-12 18:07:35
548
原创 【C语言入门】详细的scanf/printf知识梳理
相信大家在先前的一篇文章已经浅显的了解过printf的用法,这篇文章将会详细介绍printf(输出)以及scanf(输入)的相关知识。
2023-12-03 21:03:04
2658
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人