自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

是阿建吖!

这里是是阿建吖!,我非常热衷于计算机这个行业。目前对C语言和数据结构已经有很深的理解,并正在积极学习深入其他的知识,包括C++、Linux操作系统以及算法等。希望通过CSDN将自己的学习经历与见解分享给他人,希望在这里能够不断挑战自己,追求更高的技术水平。

  • 博客(29)
  • 收藏
  • 关注

原创 【C++】多态

这篇文章详细介绍了C++面向对象编程中的多态概念及其相关知识点。多态是编程中的一个核心概念,它允许使用相同的接口处理不同的数据类型。多态的实现依赖于虚函数和继承机制,通过重写虚函数,可以实现对象在运行时根据类型执行不同的操作。C++11中的override和final关键字提供了对继承和多态的更强支持。多态的原理涉及虚函数表和动态绑定,允许程序在运行时确定应调用哪个虚函数的版本。单继承和多继承关系中的虚函数表处理方式略有不同,特别是菱形继承和菱形虚拟继承需要特别注意。

2024-05-18 10:20:57 363 15

原创 【C++】继承

这篇文章详细介绍了C++面向对象编程中的继承概念及其相关知识点。首先定义了继承的基本概念和格式,包括继承关系、访问限定符以及基类成员访问方式的变化。接着,讨论了基类和派生类对象之间的赋值转化,以及继承中的作用域问题。文章还详细阐述了派生类的默认成员函数特性,并介绍了如何构建不可继承的类。此外,还探讨了继承与友元、静态成员的关系,以及复杂的菱形继承和菱形虚拟继承的解决方案。最后,对虚拟继承如何解决数据冗余和二义性进行了深入分析,并指出在菱形继承中应该选择哪个类进行虚继承修饰。

2024-05-10 13:53:01 1149 129

原创 【C++】一篇文章带你深入了解stack、queue 和 priority_queue

这篇文章详细介绍了C++标准库中涵盖了栈(Stack)、队列(Queue)、优先队列(Priority Queue)以及容器适配器的介绍和使用方法。栈是一种后进先出的数据结构,通过 push 和 pop 来操作元素,而队列则是一种先进先出的数据结构,使用 push 和 pop 来实现元素的添加和删除。优先队列则根据元素的优先级进行排序。除了介绍这些数据结构的使用方法外,还对它们的模拟实现进行了说明。同时还介绍了容器适配器的概念,以及为什么选择 deque 作为栈和队列的底层默认容器。

2024-05-01 12:42:01 1287 107

原创 【C++】一篇文章带你深入了解list

这篇文章详细介绍了C++标准库中的list容器,包括常见接口的说明和使用方法,以及对list的模拟实现。list是一个双向链表,其插入和删除操作较快,但访问元素较慢。在标准库中,list提供了多种构造函数,可以根据不同的需求进行初始化。list迭代器的使用也十分灵活,可以使用正/反向迭代器访问。在对list进行操作时,需要注意迭代器的失效问题。为了更深入地理解list的工作原理和实现细节,本文还进行了list的模拟实现。最后,本文还对比了list和vector的异同点,希望对大家理解list有所帮助。

2024-04-23 13:14:48 1492 123

原创 【C++】一篇文章带你深入了解vector

这篇文章详细介绍了C++标准库中的vector容器以及其常见接口和实现细节。首先,介绍了vector的基本概念和在标准库中的角色,然后详细说明了vector的常见接口,包括构造函数、迭代器的使用、容量操作以及增删查改等操作。接着,深入剖析了vector的实现细节,包括reserve和resize的实现、size、capacity和empty的实现、默认成员函数的实现、迭代器和范围构造函数的实现、插入、删除、头插、头删、尾插和尾删元素的实现、operator[]的实现等。

2024-04-17 10:24:50 1596 120

原创 【C++】模版

这篇文章详细介绍了泛型编程中的关键概念和技术。首先介绍了泛型编程的概念,然后深入讨论了函数模板和类模板的定义、实例化以及模板参数的匹配原则。接着介绍了非类型模板参数和模板的特化,包括函数模板和类模板的特化形式以及应用示例。还讨论了模板分离编译的概念、实现和解决方法。希望这篇文章对大家理解模版有所帮助。

2024-04-11 12:09:39 1882 109

原创 【C++】一篇文章带你深入了解string

这篇文章详细介绍了学习和使用C++标准库中的string的重要性和方法。本篇文章逐一解释了各种常用接口和函数的使用方法,从string对象的常见构造到容量操作、访问及遍历操作,再到增删查改等方面。特别是对经典的string问题如浅拷贝、深拷贝和写时拷贝进行了深入讨论。此外,文章还对string进行了模拟实现,包括默认成员函数、c_str、size、capacity、empty等函数的实现方法,以及比较函数、find、insert、erase和substr等功能的模拟实现。希望这些实现能够帮助大家理解。

2024-04-01 10:56:05 1619 153

原创 【C++】C&C++内存管理

内存管理是C / C++编程中至关重要的一部分,它直接影响程序的性能和稳定性。首先,了解C / C++内存分布是理解内存管理的基础。在C语言中,动态内存管理主要通过malloc、calloc、realloc和free函数来实现,而C++则引入了new和delete操作符,更方便地管理内存。对于内置类型,可以直接使用new和delete操作符,而对于自定义类型,需要实现相应的new和delete操作符以便正确地分配和释放内存。

2024-03-21 14:01:20 1947 162

原创 【C++】类和对象(下)

这篇文章深入探讨了C++中类的关键概念,包括构造函数的不同赋值方式、初始化列表和explicit关键字的使用。文章中还介绍了static成员的概念和特性,以及友元函数和友元类的作用。内部类、匿名对象和拷贝对象时的编译器优化也得到了详细解释,帮助大家更深入地理解类和对象之间的关系。本篇文章还设有对应题目,希望大家能够巩固对这些概念的理解和应用能力。

2024-03-13 16:29:57 1597 117

原创 【C++】类和对象(中)一篇文章带你学会六大默认成员函数

这篇文章深入探讨了C++中类的关键概念,重点介绍了类的6个默认成员函数,包括构造函数、析构函数、拷贝构造函数和赋值运算符重载。详细解释了每个函数的概念和特性,帮助大家深刻理解它们在对象生命周期中的作用。本文章还对日期类进行了实现,通过实际案例展示了如何应用这些概念来创建实用的类。此外,对const成员和取地址操作符的重载也能够更好地理解C++中类的强大功能和灵活性。

2024-03-06 12:15:46 1385 129

原创 【C++】类和对象(上)

本篇系统地介绍了面向对象编程中关键的概念和基础知识。从面向过程和面向对象的初步认识出发,逐步深入到类的引入、定义、访问限定符和封装等方面。详细解释了访问限定符的作用,以及封装如何提高代码的可维护性和安全性。类的作用域、实例化和对象模型的讨论进一步拓展了读者对面向对象编程的理解。本文章还对类对象大小计算、存储方式猜测和内存对齐规则的深入讨论。此外,为了更好地理解对象之间的关系还对this指针的引出和特性进行了解释。

2024-02-29 21:40:37 1812 124

原创 【C++】C++入门

C++是一种广泛应用于软件开发的高级编程语言。它结合了C语言的高效性和面向对象编程的特性,使得程序员能够编写高性能且可扩展的代码。C++具有丰富的标准库,涵盖了各种数据结构和算法,为程序员提供了丰富的工具和资源。入门学习C++时,重点理解语言的基本语法、数据类型、控制流结构以及面向对象编程的概念。通过编写简单的程序,掌握变量的声明与定义、函数的定义与调用、类的创建与使用等基本技能。同时,了解指针、引用、内存管理等重要概念,以及异常处理、模板元编程等高级特性,将有助于更深入地理解和应用C++语言。

2024-02-17 15:47:12 1218 48

原创 【数据结构】一篇文章带你学会八大排序

这篇文章将讲解八大排序的原理、思想、复杂度等,并且我会使用图片来讲解这些排序的过程,将过程讲完后会有C语言的代码实现,可以仔细阅读一下。在每讲完一个排序后,我会做一个小总结,帮助大家更好理解排序。

2024-02-08 21:23:44 1962 57

原创 【C语言】指针超详细讲解(超级详细!!!快来看快来看!!!)

本章将会对指针分为初阶指针和进阶指针,在初阶指针中我会讲述指针的概念、指针类型、野指针、指针和数组的关系和二级指针,而在进阶指针中我我会讲述字符指针、指针数组、数组指针、函数指针、函数指针数组、指向函数指针的指针和回调函数的相关内容,希望对大家有所帮助。

2023-07-20 11:46:23 3512 89

原创 【数据结构】非线性结构之树结构(含堆)

本篇文章将会对一些二叉树和堆的概念进行讲述,其中包括二叉树线性存储、二叉树链式存储和堆的概念和实现,本文章中还会对堆进行运用,例如堆排序的实现、TopK的实现。文章还会对一些二叉树题目进行略微的讲解,例如二叉树的前、中、后和层序遍历,二叉树的节点个数、二叉树的叶子节点个数和二叉树的第k层节点个数等题目讲解,希望对大家有所帮助。

2023-07-12 11:43:51 2344 129

原创 【数据结构】时间复杂度与空间复杂度

在学习C语言的时候,大多数的小伙伴们并不会对算法的效率了解,也许算法也是一个陌生的领域,当进入了数据结构这个模块,就应该对算法的效率做一个清晰的认识。但是算法的效率是什么呢?这里就引出来时间复杂度与空间复杂度的概念了。

2023-05-29 09:04:53 2076 81

原创 【数据结构】线性表之栈、队列

这篇文章继续讲述与顺序表和链表不同的线性结构:栈和队列!!

2023-05-22 16:58:10 1576 48

原创 【数据结构】线性表之链表

这篇文章讲述关于链表的定义、类别、实现、多种不同链表的优缺点和链表与顺序表的优缺点。线性表之顺序表链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。

2023-05-16 15:05:04 2447 49

原创 【数据结构】线性表之顺序表

线性表是n (n >= 0)个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列…线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的线性表在物理上存储时,通常以数组和链式结构的形式存储。数组形式链表形式顺序表是一种线性数据结构,通过连续的内存空间存储元素,可以随机访问任何位置的元素。它支持在常量时间内进行插入、删除和访问操作,但在插入或删除元素时可能需要移动后续元素,导致时间复杂度为O(n)。

2023-05-10 22:36:08 969 15

原创 【C语言】通讯录(文件版)

前面我们完成了通讯录的静态版本和动态版本,虽然功能已经比较完善了,但是前面的通讯录缺少了存储联系人的能力,所以我们学习了文件的操作管理,这里我们就用上一篇文章的知识来完成这次的文章吧。关于通讯录的前两篇文章我放上两个链接:(1)

2023-05-06 13:49:51 1211 23

原创 【C语言】文件操作详解

前面我们使用通讯录记录联系人的时候,在程序结束后这些联系人都会被销毁,在下一次启动程序的时候,这些联系人又需要重新输入,为了防止这种情况,我们引入了文件操作,在程序结束后将通讯录中的内容保存在文件中,在下一次启动程序的时候在文件中读取内容,这样就能实现数据的持久化。

2023-04-28 18:10:54 746 12

原创 【C语言】通讯录(动态版)

通讯录动态版:上一篇文章我们完成了静态版的通讯录,这次我们完成对通讯录进行改造,使得通讯录能够自动扩大通讯录的容量。

2023-04-20 21:30:27 570 6

原创 【C语言】通讯录(静态版)

静态通讯录的完成,包括对通讯录进行增加(Add)、删除(Dul)、查找(Search)、修改(Modify)、显示(Show)、排序(Sort)等操作。

2023-04-11 23:01:44 1627 6

原创 【C语言】动态内存管理详解

动态内存管理详解

2023-04-07 22:35:17 627 2

原创 【C语言】自定义类型

自定义类型详解

2023-03-29 17:51:53 659 4

原创 【C语言】扫雷的模拟实现详解

扫雷的模拟实现详解

2023-03-24 18:50:51 533 4

原创 【C语言】关于处理字符和字符串的库函数,以及部分函数的实现

关于处理字符和字符串的库函数,以及部分函数的实现

2023-03-19 15:43:03 707 6

原创 【C语言】三子棋的实现(解析)

用C语言完成三子棋

2023-03-09 15:11:43 542 2

原创 About me

关于自己的信

2023-01-14 15:01:42 582 7

空空如也

空空如也

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

TA关注的人

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