自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【c++篇】:掌握vector基础知识--基本操作与使用全知道

在C++的庞大标准模板库(STL)中,无疑是最为常用且功能强大的容器之一。它以其高效的内存管理和灵活的动态数组特性,成为了程序员们处理数据的首选工具。无论是初学者还是资深开发者,都是他们日常编程工作中不可或缺的一部分。在这篇文章中,我们将深入探讨的基本操作和使用方法。我们将从的创建和初始化开始,逐步学习如何向中添加元素、删除元素、访问元素以及进行其他常见操作。希望这篇文章对你的学习有所帮助。vector是一个能存储任意类型对象的序列容器,这些对象在容器中有序存储,也就是说,vector底层就是顺序表。

2024-11-03 23:01:16 726 34

原创 【c++篇】:模拟实现string类--探索字符串操作的底层逻辑

在上一篇文章中,我们了解到了类的常用接口函数以及如何熟练使用。在这片文章中,我们将深入探讨如何模拟实现一个基本的string类。我们的目的不是创建一个功能完整的string库,而是通过这个过程来学习字符串处理的基本原理和常见的实现技巧。通过模拟实现string类,我们不仅能够深入理解字符串的内部工作原理,还能锻炼我们的编程能力,提高解决问题的能力,希望这篇文章能过为你的编程之旅提供有价值的参考和启发。注意:模拟实现string类需要用到三个文件test.cpp文件用来进行测试string.cpp。

2024-10-31 21:07:24 1832 58

原创 【c++篇】:探索c++中的std::string类--掌握字符串处理的精髓

在C++编程的世界里,字符串无处不在。无论是用户输入、文件处理,还是网络通信,字符串都是不可或缺的数据类型。然而,直接操作字符数组(即char字符串)不仅繁琐,而且容易出错。幸运的是,C++标准库为我们提供了类,它封装了字符串的底层细节,提供了丰富的成员函数来简化字符串的处理。本篇文章将深入探讨c++中的类的成员函数,包括字符串的创建,遍历,以及增删查改等,带你领略其强大的功能和便捷的操作方式。

2024-10-28 22:13:56 2483 56

原创 【c++篇】:从基础到实践--c++内存管理技巧与模版编程基础

内存管理和模板是C++编程中两个重要的主题,它们共同构成了高效、灵活和可复用的代码基础。内存管理涉及到如何有效利用计算机内存资源,确保程序的性能和稳定性;而模板则提供了一种参数化类型和函数的机制,使得代码能够以类型无关的方式编写,从而实现高度的抽象和复用。理解这些概念对于编写高质量和可维护的C++代码至关重要。本文将探讨C++中的内存管理和模板的基础知识,帮助读者掌握这两个核心主题,为构建复杂系统打下坚实的基础。

2024-10-26 16:05:50 2157 58

原创 【c++篇】:解析c++类--优化编程的关键所在(三)

在上一篇的文章中关于构造函数我们知道,当我们在创建对象时,编译器会调用构造函数对成员变量进行初始化,比如下面这段代码:在上面这段代码中,创建对象调用构造函数完成初始化,虽然传参数使对象的成员变量有了一个初始值,但是这时候并不能称为对对象成员变量的初始化,而是对成员变量进行赋初值,在之后依然可以多次赋值。**而初始化只能初始化一次。**因此就需要使用初始化列表来完成初始化。初始化列表的语法如下:其中初始化列表以一个冒号开始,接着是一个以逗号分隔的数据成员列表,每个成员变量后面接着一个放在括号中的初始值或者

2024-10-24 23:44:14 1751 51

原创 【c++篇】:解析c++类--优化编程的关键所在(二)

在c++中,当一个类被定义时,编译器会自动为这个类生成一些特殊的成员函数,这些函数被称为默认成员函数。虽然这些函数在类中可能没有被显示定义,但在默写情况编译器会隐式的为他们生成实现。

2024-10-22 23:23:41 2482 55

原创 【c++篇】:解析c++类--优化编程的关键所在(一)

在程序设计的广袤宇宙中,C++以其强大的功能和灵活性,成为众多开发者手中的利器。C++不仅继承了C语言的高效和直接操作硬件的能力,还引入了面向对象编程的概念,让代码的组织和管理变得更加清晰和高效。而在C++的面向对象体系中,类(class)无疑是最核心的概念之一。而本篇文章将初步学习类(class)。类通过关键字class来定义,后面跟着类名classname和一对花括号{},花括号内的为类的主体也就是类的成员声明。注意花括号后的;不要省略。//成员函数........//成员变量。

2024-10-20 23:25:31 1372 45

原创 【c++篇】:初识c++--编程新手的快速入门之道(二)

在上一篇文章中讲解了部分c++入门知识点,这篇文章将继续讲解剩下的知识点在C语言的时候我们知道typedef关键字可以用来给一些类型取别名,对于一些较长的类型名时使用起来会很方便,比如,是一个类型,但是该类型太长了,特别容易写错,于是可以通过typedef给类型取别名使用typedefreturn 0;c++为了解决这一情况将auto赋予了新的含义。c++11中,auto不再是一个存储类型指示符,而是作为一个新的类型指示符来指示编译器,auto声明的变量必须由编译器在编译时期推导而得。

2024-10-17 23:08:01 1575 35

原创 【c++篇】:初识c++--编程新手的快速入门之道(一)

在之前的文章中,我们学完了初阶数据结构的线性表,栈和队列,堆,二叉树以及排序(详细可以看我之前的几篇文章),在接下来的一段时间内将重点学习c++,c++是在c的基础上,容纳进去了面向对象编程的思想,并且增加了许多有用的库,以及编程范式等。学习c++之前要有一定的C语言基础。本篇文章将讲解c++入门知识,也是对C语言不足的补充,为后序类和对象的学习打好基础。定义命名空间,需要使用到namespace关键字,后面加命名空间的名字,然后接一对=={ }{ }==中就是命名空间的成员。

2024-10-16 22:09:01 1125 18

原创 【数据结构】:破译排序算法--数字世界的秩序密码(二)

在上一篇文章中,主要讲了插入排序,希尔排序,选择排序,堆排序(详细可以看我上一篇文章哦),在接下来的这篇文章中,将重点讲解冒泡排序,快速排序,归并排序以及计数排序。

2024-10-15 22:24:49 1594 31

原创 【数据结构】:破译排序算法--数字世界的秩序密码(一)

排序算法是计算机科学中非常重要的一部分,它们的主要目的是将一个数据集合(如数组或列表)中的元素按照一定的顺序(如升序或降序)重新排列。排序算法的应用非常广泛,从简单的数据整理到复杂的数据库管理系统,都离不开排序算法的支持。定义:排序算法是指将一组数据按照特定的顺序进行排列的算法。目的:使得数据在逻辑上或物理上按照一定的顺序进行排列,以便于后续的数据查找、处理和分析等操作。本篇文章主要讲述了插入排序,希尔排序,选择排序和堆排序,剩下的冒泡排序,快速排序,归并排序和计数排序我将会放在下一篇文章中。!!

2024-10-13 23:08:58 1525 28

原创 【数据结构】:揭秘二叉树--数据世界中的神奇构架

树是由n(n≥0)个节点组成的有限集合。当n=0时,称为空树;有一个特定的节点称为根节点(Root),它是唯一的,没有父节点。当n>1时,其余节点可分为m(m>0)个互不相交的有限集T1、T2…Tm,其中每一个集合Ti(1

2024-10-09 23:36:48 1358 27

原创 【数据结构】:堆

“堆”(Heap),它是一种特殊的树形数据结构,具体有以下特点:完全二叉树:堆通常是一个完全二叉树,即除了最后一层,其他层的节点数都达到了最大值,最后一层的节点都靠左排列。堆的性质:堆分为两种类型:最大堆(Max Heap):每个节点的值都大于或等于其子节点的值。最小堆(Min Heap):每个节点的值都小于或等于其子节点的值。数组实现:堆通常使用数组来实现,==数组的下标与树中节点的位置相对应。==例如,对于下标为的节点,其左子节点的下标为,右子节点的下标为。插入和删除操作:堆支持插入和删除操作,插入操作

2024-10-07 16:22:44 1403 25

原创 【数据结构】:队列补充内容--循环队列

循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。但是使用循环队列,我们能使用这些空间去存储新的值。循环队列的一个主要特点是它的头尾相连,形成一个环。当队列的尾部指针到达数组的最后一个元素时,它会自动跳回到数组的第一个元素开始继续存储数据,从而有效地利用了数组的存储空间。设计你的循环队列实现。循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。

2024-10-05 21:10:34 1528 22

原创 【数据结构】:栈和队列

假设某个栈S=(a1,a2,a3,a4,a5,a6),如图所示,则a1,为栈底元素,a6为栈顶元素。队列和栈一样,队列的实现一般也可以使用数组或链表,而用数组实现的队列通常设计成循环队列,较为复杂(在我之后的一篇关于栈和队列练习题中有关于循环队列的题,我将在之后的文章中讲解,感兴趣的可以关注期待一下),这里重点讲解用链表实现的队列。入栈的时候我们要先考虑数组满的情况,如果数组满了,我们就要为数组扩容,如果我们直接让原来的指针ps->a指向扩容的数组地址,扩容失败ps->a就会直接变成空指针,

2024-10-05 13:57:54 881 9

原创 数据结构:线性表

线性表的顺序存储又称顺序表。顺序表(Sequential List)是一种线性表的数据结构,它采用一段连续的存储单元依次存储线性表的数据元素。在顺序表中,数据元素之间的逻辑关系是通过元素在存储空间中的相对位置来表示的,即数据元素在顺序表中的位置(或索引)决定了元素之间的相对顺序。具体来说,顺序表可以通过数组来实现。在数组中,每个元素都有一个索引(或下标),索引用于唯一标识数组中的元素,并且索引之间的差值表示了元素之间的相对位置。

2024-10-02 16:22:40 1162 16

空空如也

空空如也

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

TA关注的人

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