- 博客(29)
- 收藏
- 关注
原创 C++基础快速入门(下篇)
书接上回C++是在C语言的基础上发展而来的,因此C++继承了C语言的许多特性,同时也引入了一些新的特性和语法。下面是C语言到C++的一些变化知识点的总结:1. 类和对象:C++引入了面向对象编程的概念,可以定义类和对象。类是一种自定义的数据类型,对象是类的一个实例。通过类和对象可以实现封装、继承和多态等面向对象的特性。2. 命名空间:C++引入了命名空间的概念,用于避免命名冲突。可以将多个相关的变量、函数、类等放在同一个命名空间中,使用时可以通过命名空间限定符来访问。
2025-01-01 20:54:26
655
原创 C++基础快速入门(上篇)
C和C++之间的关系是紧密且复杂的。C++最初是作为C语言的一个扩展开发的,目的是在不放弃C的强大功能和效率的同时,增加对象导向编程、泛型编程和其他一些特性。下面是C和C++之间主要的关系和区别:1.兼容性C++在很大程度上是与C兼容的。这意味着许多C程序可以在C++编译器中编译并运行,尽管可能需要一些小的修改。2.面向对象编程(OOPC++引入了面向对象编程。它允许使用类和对象,而C是一个过程性语言,不支持这些概念,或者说支持的不好,麻烦。3.模板。
2025-01-01 20:34:50
1005
1
原创 C++模板初阶
C++中的模板是一种通用的编程方式,用于定义泛型函数或类。通过使用模板,可以编写具有通用性的代码,使其适用于各种不同类型的数据。使用模板可以使代码更加灵活和可复用,因为它们可以适用于不同类型的数据,而无需为每种类型编写不同的代码。
2024-09-22 20:06:19
442
原创 C/C++中的内存管理
在C/C++中,内存管理是程序开发过程中非常重要的一部分。C语言中没有提供内置的垃圾回收机制,而C++语言则提供了一些内存管理的工具,如析构函数和智能指针。C语言中,程序员需要手动分配和释放内存。常用的内存管理函数有malloc、calloc和realloc,用于动态分配内存空间。同时,程序员还需要使用free函数手动释放已经分配的内存。C++语言中,可以使用new和delete关键字来动态分配和释放内存。
2024-09-22 19:44:09
1289
原创 88.合并两个有序数组---力扣
- 力扣(LeetCode). - 备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。
2024-08-25 21:46:16
357
原创 27.移除元素---力扣
- 力扣(LeetCode). - 备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。
2024-08-21 22:31:42
419
原创 26.删除有序数组中的重复项---力扣
- 力扣(LeetCode). - 备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。
2024-08-21 22:23:47
531
原创 类和对象(下)
类是一种模板或蓝图,用于创建对象。它定义了对象的属性和方法。对象是类的实例化,它具有类定义的属性和方法。类可以包含属性和方法。属性是类的特征或数据。方法是类的行为或功能。例如,一个人的类可以有属性如姓名、年龄和性别,方法如说话和走路。创建对象时,可以使用类来实例化对象。对象可以访问类中定义的属性和方法。例如,可以创建一个人的对象,访问其姓名属性和说话方法。类和对象的关系是一种面向对象编程的基本概念。它允许开发人员根据现实世界中的概念和关系来设计和实现代码。
2024-07-31 16:24:27
766
原创 类和对象(中)
C++中的成员函数有三种默认情况:1. 默认构造函数(Default Constructor):如果类没有定义任何构造函数,那么编译器会自动生成一个默认构造函数。默认构造函数没有参数,它会完成一些默认的初始化工作,例如将成员变量赋予默认值。如果类定义了其他构造函数,但没有定义默认构造函数,那么默认构造函数就不会被自动生成。2. 默认析构函数(Default Destructor):如果类没有定义析构函数,那么编译器会自动生成一个默认析构函数。默认析构函数没有参数,它会自动释放类的资源。
2024-07-17 22:33:57
865
原创 C++类和对象(上篇)
类和对象是面向对象编程的两个核心概念。类是一种抽象的数据类型,是描述对象共同特征和行为的模板。一个类包括属性和方法。属性是类的数据成员,描述对象的特征;方法是类的成员函数,描述对象的行为。类定义了对象的结构和行为。对象是类的实例化,是具体的实体。一个对象具有类中定义的属性和方法。可以通过创建对象来使用类中定义的属性和方法。通常,类是创建对象的蓝图,对象是类的实例,类描述了对象的属性和行为。类可以看作是一种抽象的概念,而对象是具体的实例。
2024-07-09 23:55:49
881
原创 机器视觉理论入门
Marr的视觉计算理论立足于计算机科学,系统地概括了心理物理学、神经生理学、临床神经病理学等方面已取得的所有重要成果,是迄今为止最为系统的视觉理论。Marr 的视觉计算理论虽然在细节甚至在主导思想方面尚存在大量不完备的方面,许多方面还存有许多争议,但至今为止仍是广大计算视觉研究人员接受的基本框架。计算机视觉这门学科的形成,应该说与这一理论框架有密切的关系,下面我们从几个方面来描述这一理论框架。
2024-07-09 23:28:53
1407
原创 机器视觉基本概述
机器视觉是指计算机系统通过使用图像处理技术对图像或视频进行处理和分析,以模拟人类视觉系统的能力。它包括图像的获取、处理、分析和理解等多个方面,可以实现图像识别、目标检测、图像分割、运动跟踪等功能。机器视觉在自动驾驶、工业检测、安防监控、医学影像等领域有着广泛的应用。机器视觉是人工智能正在快速发展的一个分支。简单说来,机器视觉就是用机器代替人眼来做测量和判断。
2024-07-08 23:55:54
3967
1
原创 C++入门(C语言过渡)
C++是一种通用的、高级的、静态类型的编程语言,它在20世纪80年代由丹尼斯·里奇创建的C语言基础上发展而来。以下是C++发展的一些重要里程碑。1. 1983年,Bjarne Stroustrup在贝尔实验室开发C++语言,最初命名为“C with Classes”。2. 1985年,第一个以C++语言写成的编译器问世。3. 1989年,C++语言的第一个正式标准发布,其基础是C++的前身“C with Classes”。4. 1998年,第二个C++标准发布,称为C++98。
2024-07-08 17:34:38
1134
1
原创 时间复杂度与空间复杂度
算法在编写成可执行程序后,运行时需要耗费时间资源和空间(内存)资源。因此衡量一个算法的好坏,一般是从时间和空间两个维度来衡量的,即时间复杂度和空间复杂度。时间复杂度主要衡量一个算法的运行快慢,而空间复杂度主要衡量一个算法运行所需要的额外空间。在计算机发展的早期,计算机的存储容量很小。所以对空间复杂度很是在乎。但是经过计算机行业的迅速发展,计算机的存储容量已经达到了很高的程度。所以我们如今已经不需要再特别关注一个算法的空间复杂度。
2024-07-06 10:43:58
922
2
原创 数据结构:希尔排序
排序在生活中有许多实际的运用。以下是一些例子:购物清单:当我们去超市购物时,通常会列出一份购物清单。将购物清单按照需要购买的顺序排序,可以使购物过程更加高效和有序。时间管理:在安排日程和任务时,将任务按照优先级排序可以帮助我们更好地管理时间。通过将任务按照重要性和紧急性进行排序,我们可以更好地掌控时间,确保重要的事情得到优先处理。紧急情况应对:在紧急情况下,如自然灾害或事故,排序可以帮助救援人员更好地组织和协调救援工作。
2024-05-31 23:01:00
897
4
原创 数据结构:二叉树---堆
二叉树是一种特殊的树结构,其中每个节点最多有两个子节点。堆是一个完全二叉树:除了最后一层外,其他层节点个数都是满的,最后一层的节点都集中在左侧。堆中每个节点的值大于等于(或小于等于)其子节点的值,这个性质被称为堆序性。堆是一种特殊的数据结构,用于存储和管理一组元素。它的主要作用包括:1. 优先级队列:堆可以将元素按照一定的优先级进行排序,使得可以快速访问和操作优先级最高的元素。这在诸如调度算法、事件处理等场景中非常有用。2. 堆排序:堆排序是一种高效的排序算法,它利用堆的性质将元素快速排序。
2024-05-18 21:38:36
852
2
原创 数据结构:二叉树(基本概念)
树是一种非线性的数据结构,它由一组称为节点的元素构成,这些节点通过边连接起来。树的一个节点称为根节点,根节点可以有零个或多个子节点,每个子节点又可以有自己的子节点,以此类推,形成了一棵树。树(或称为树状结构)是一种重要的数据结构,它在计算机科学和数学中有广泛的应用。树的主要作用包括以下几个方面:1. 组织和存储数据:树可以用来组织和存储具有层次关系的数据,例如组织结构、文件系统、网络路由表等。树的层次结构使得数据的管理和访问更加高效和方便。
2024-05-18 21:12:08
701
原创 数据结构:队列
队列是一种特殊的数据结构,它按照先进先出(First In First Out,FIFO)的原则来存储和访问数据。在队列中,新的元素被添加到队列的末尾,而只有队列中最早添加的元素才能被优先访问和删除。队列有两个主要操作:1. 入队(Enqueue):将元素添加到队列的末尾。2. 出队(Dequeue):从队列的头部删除并返回最早添加的元素。除了入队和出队操作,队列还包括以下几个常用方法:- 队列判空(isEmpty):判断队列是否为空。- 获取队列长度(size):获取队列中元素的个数。
2024-05-17 21:28:30
1167
原创 数据结构:栈
栈(Stack)是一种线性数据结构,具有特殊的操作规则。栈中的数据项按照后进先出(Last In First Out, LIFO)的原则进行插入和删除操作。入栈(Push):在栈顶插入一个元素。如果栈已满,则无法插入新元素。出栈(Pop):从栈顶删除一个元素,并返回被删除的元素。如果栈为空,则无法进行删除操作。栈顶(Top):栈中最后插入的元素。栈底(Bottom):栈中第一个插入的元素。栈的大小(Size):栈中元素的数量。栈的空间限制:栈的大小有限,当栈已满时,无法再进行入栈操作。
2024-05-17 21:03:41
933
3
原创 深入理解指针(第一层)
指针是一个变量,它存储了一个内存地址。这个内存地址可以是其他变量或数据的位置。因此,指针可以被用来访问和操作这个内存地址上的数据。通过使用指针,可以在程序中直接对内存进行操作,这对于一些需要对数据进行动态分配和释放的编程任务来说非常有用。指针在C、C++等编程语言中被广泛使用。
2024-05-05 22:44:58
1620
4
原创 自定义类型:联合和枚举
一、联合体1.联合体类型的声明像结构体⼀样,联合体也是由⼀个或者多个成员构成,这些成员可以不同的类型。但是编译器只为最大的成员分配足够的内存空间。联合体的特点是所有成员共用同⼀块内存空间。所以联合体也叫:共用体。给联合体其中⼀个成员赋值,其他成员的值也跟着变化。//联合类型的声明union Unchar c;int i;int main()//联合变量的定义//计算连个变量的⼤⼩return 0;输出结果为42.联合体的特点。
2024-04-28 23:01:42
1086
2
原创 数据结构:双链表
双链表(Doubly linked list)是一种链表的数据结构,在其中每个节点都包含指向前一个节点和后一个节点的指针。与单链表不同的是,双链表可以从前往后和从后往前遍历。双链表的每个节点通常由两个指针组成,分别指向前一个节点(previous)和后一个节点(next)。第一个节点的前指针通常为空(null),最后一个节点的后指针也为空(null)。这种结构使得我们可以在双链表中方便地插入、删除和修改节点,因为我们可以直接访问前一个和后一个节点。
2024-04-28 21:13:48
792
4
原创 数据结构:单链表
链表是一种常见的数据结构,用于存储和组织数据。它由一系列节点组成,每个节点包含数据和指向下一个节点的指针。链表的用途:存储数据:链表可以存储各种类型的数据,包括整数、浮点数、字符串等。每个节点可以存储一条数据。动态添加和删除数据:链表的插入和删除操作非常高效,因为只需要调整节点的指针即可,不需要移动其他节点。实现其他数据结构:链表可以用来实现其他复杂的数据结构,例如栈、队列和图等。通过不同的指针操作,可以将链表转换为这些数据结构。遍历和访问数据:链表可以按顺序遍历节点,并访问节点的数据。
2024-04-20 17:44:21
1554
5
原创 数据结构:顺序表
概念:数据结构是计算机存储、组织数据的⽅式。数据结构是指相互之间存在⼀种或多种特定关系的数据元素的集合。数据结构反映数据的内部构成,即数据由那部分构成,以什么⽅式构成,以及数据元素之间呈现的结构。总结:1)能够存储数据(如顺序表、链表等结构)2)存储的数据能够⽅便查找//定义顺序表的结构//////静态顺序表//{//有效数据个数//};//动态顺序表int size;//有效数据个数//空间大小}SL;对数组的类型进行重命名,方便后期修改。
2024-04-14 19:01:16
1673
3
原创 自定义类型:结构体
使用结构体来表示一个学生的信息,包含姓名、年龄、性别等成员变量,这样就可以更方便地对学生信息进行管理和操作。总之,结构体的使用可以使程序更具有组织性和可读性,便于对相关数据进行操作和管理。
2024-04-05 21:14:29
873
4
原创 扫雷游戏的实现
利用数组,函数,分支与循环结构进行扫雷游戏设计游戏规则很简单,点击方格,如果是地雷,游戏失败,找到所有地雷游戏胜利。2 .刚开始需要碰运气,只要点开一个区域,就可以正式开始了。3 根据现有情况,判断出一定有雷的位置。(根据数字利用九宫格来判断)游戏的逻辑设计需要想清楚后进行实践,利用代码的方式解决实际问题也需要我们循序渐进,逐层突破。
2024-02-26 22:37:42
505
1
原创 利用循环分支结构进行简易猜数字游戏
学习了一些简单的循环分支结构,写一个稍有趣的代码循环和分支是编程中常用的控制结构,用于根据条件执行不同的代码块或重复执行一段代码。循环: 循环用于重复执行一段代码,直到满足特定条件为止。常见的循环结构有以下几种:for循环:通过指定初始值、循环条件和每次迭代后的操作来控制循环次数。while循环:在循环开始之前先判断条件是否满足,如果满足则执行循环体,然后再次判断条件,直到条件不满足时退出循环。
2024-01-31 18:01:39
736
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人