自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++ 红黑树

在之前的文章中,我们介绍了 C++ 标准库中的 map 和 set 容器的使用,以及 AVL 树的实现。尽管 AVL 树在平衡性方面表现优异,但在插入和删除操作频繁的应用中,红黑树(Red-Black Tree)由于其较少的旋转操作次数,往往能提供更优的性能。本篇博客将详细介绍红黑树的概念、性质、节点定义、结构、插入与删除操作、性能、迭代器设计,并展示基于红黑树的模拟实现代码及其在 map 容器中的应用。

2024-07-22 23:59:01 1095

原创 C++ AVL树

在计算机科学中,二叉搜索树是一种常用的数据结构,主要用于快速查找、插入和删除操作。然而,当插入的数据是有序或接近有序时,普通的二叉搜索树可能会退化成链表,从而降低操作效率。为了解决这一问题,1962年,两位俄罗斯数学家G.M. Adelson-Velskii和E.M. Landis发明了AVL树。AVL树是一种自平衡的二叉搜索树,通过对节点的高度进行调整,保证了查找、插入和删除操作的高效性。本文将详细介绍AVL树的概念、节点定义、插入、旋转、验证、删除以及其性能。

2024-07-19 23:56:29 1108

原创 C++ map和set的使用

在C++中,关联式容器如set、multiset、map和multimap通过键值对来高效地管理和存储数据。这些容器利用平衡树结构(如红黑树)保证操作的有序性和高效性。set和multiset用于存储唯一和重复的有序元素,而map和multimap则通过键值对实现键的唯一和重复存储。理解和使用这些容器可以帮助我们在编程中高效地处理各种复杂的数据结构和操作需求。

2024-07-18 00:11:35 876

原创 C++ 二叉搜索树

在之前的C语言系列博客中,我们已经介绍了二叉树的基本概念。二叉树是一种常见的数据结构,其每个节点最多有两个子节点,分别称为左子节点和右子节点。今天,我们将进一步探讨一种特殊的二叉树——二叉搜索树(Binary Search Tree,简称BST)。BST在计算机科学中有着广泛的应用,尤其是在需要快速查找、插入和删除操作的场景中。

2024-07-17 08:24:33 759

原创 Linux基本指令(一)

在学习和使用Linux系统的过程中,掌握基本的命令行指令是必不可少的。这些指令不仅能够帮助你高效地管理文件和目录,还能让你更好地理解和控制系统。本系列博客将从最基础的指令开始,逐步介绍Linux系统中的各种命令,让你能够轻松上手并逐步深入。本篇作为系列的第一部分,将介绍如何使用Xshell7远程登录Linux系统,并学习一些常用的基本指令。

2024-07-13 23:14:08 730

原创 Linux 初识

我们了解了Linux的发展历史、开源属性、企业应用现状以及不同安装方式。Linux以其稳定性、灵活性和开源社区的支持,在服务器、桌面、嵌入式系统和云计算等多个领域广泛应用。无论是双系统安装、虚拟机部署还是云服务器,都为用户提供了多样化的选择,满足了不同的使用需求。掌握Linux的使用和管理,将为个人和企业的技术发展带来巨大的优势和机遇。

2024-07-11 23:06:43 1045

原创 C++ 多态

多态是C++语言的三大特性之一,另两个特性是封装和继承。多态性使得对象可以根据运行时的实际类型来表现出不同的行为,从而实现灵活和可扩展的设计。在软件开发过程中,多态能够提高代码的复用性和可维护性,减少重复代码,并提供更加抽象和通用的接口。本文将详细探讨C++中的多态,包括其定义、构成、虚函数、抽象类以及实现原理,帮助读者全面理解这一重要概念。

2024-07-10 22:49:54 805

原创 C++ 继承

C++作为一门强大的面向对象编程语言,其三大核心特性之一的继承,为代码的重用和扩展提供了极大的便利。继承允许一个类继承另一个类的属性和方法,实现了代码的高度复用和灵活扩展。然而,继承也带来了复杂性和潜在的风险,因此正确理解和使用继承机制至关重要。本篇博客将系统性地探讨C++中的继承,从概念、定义、应用到高级用法,帮助读者全面掌握这一重要特性。

2024-07-09 23:20:00 885 1

原创 C++ stack类与queue类

通过对C++标准模板库中的stack和queue的介绍与使用,我们深入了解了这两种重要的容器适配器。stack和queue在许多计算机科学领域和实际应用中都有广泛的使用场景。我们不仅学习了它们的基本操作和应用,还通过模拟实现进一步理解了其内部机制。掌握这些数据结构和容器适配器,将显著提升我们在算法设计和程序开发中的效率和能力。希望这篇博客能帮助读者更好地理解和应用stack和queue,为大家在编程道路上提供有力的支持。

2024-06-03 22:19:26 664

原创 C++ list类

通过这篇文章,我们深入探讨了 C++ 标准模板库中的 list 类,包括其构造函数、迭代器、容量获取与元素访问函数、修改函数及其他功能函数。我们还实现了一个简单的 list 模拟,并详细比较了 list 与 vector 的异同。希望通过这些内容,读者能够更全面地理解 list 的使用场景和实现原理,从而在实际编程中做出更加合理的数据结构选择,提高代码的效率和性能。

2024-05-29 19:29:55 1110

原创 C++ vector类

在前面的博客中,我们介绍了string类的使用与模拟实现,深入探讨了其在C++编程中的重要性和具体应用。然而,string类仅仅是C++标准模板库(STL)中的一个组成部分。为了更全面地了解STL的强大功能,本篇博客将聚焦于另一个核心容器类——vector。vector类在现代C++编程中扮演着至关重要的角色,其灵活的动态数组特性、丰富的成员函数以及高效的内存管理,使其成为开发者处理可变大小数组的首选工具。本文将详细介绍vector类的基本概念、使用方法、内部实现以及常见问题的解决方案,帮助读者全面掌握这一

2024-05-22 19:30:05 1130

原创 C++ string类的模拟实现

本文通过深入探讨 MyString::string 类的设计和实现,我们了解了如何构建一个功能齐全的字符串处理类。从基础的构造和析构函数到复杂的操作如插入、删除和运算符重载,这个类展示了在 C++ 中管理和操作字符串数据的有效方法。该实现支持常见的字符串操作,还通过运算符重载增强了与标准 I/O 流的交互能力,提供了一种直观和灵活的方式来处理文本数据。

2024-05-13 16:58:43 639

原创 C++ string类

在本篇博客中,我们深入探讨了C++标准库中的string类,从其构造函数、容量操作函数,到访问及遍历操作,以及类对象的修改操作。string类作为C++中处理字符串的核心工具,提供了丰富的接口来高效、安全地管理和操作字符串。掌握这些功能不仅可以提高编程效率,还能帮助开发者编写更加健壮和可维护的代码,有效地处理现代软件开发中的文本数据挑战。

2024-05-01 11:48:27 1118

原创 C++ 初识模板

通过本文的介绍,我们可以看到,C++ 模板是一种强大的工具,使得编程变得更为灵活和通用。无论是函数模板还是类模板,它们都提供了实现泛型编程的基础,允许代码以类型无关的方式被重用和适应不同的数据需求。这不仅增加了代码的复用性和可维护性,还提高了程序的效率和可靠性。掌握C++模板是每个C++程序员提升编程技能的关键步骤,也是深入理解现代C++设计和实现的基础。

2024-04-21 17:50:01 951

原创 C++ STL简介

在软件开发的演变过程中,程序设计语言的进步往往伴随着新的技术和方法的出现,以更高效地解决问题和提升性能。C++语言的发展尤为引人注目,它不仅从C语言继承了高效和灵活的特性,还引入了面向对象和泛型编程的强大功能。特别是标准模板库(Standard Template Library,STL)的引入,标志着C++从其前身C语言的一大飞跃。在本文中,我们将走进STL的世界,了解它如何使C++编程变得更加高效和强大。

2024-04-21 15:22:49 928

原创 C++内存管理

在本博客中,我们全面探讨了C++中的内存管理机制,从基本的内存布局到高级的内存操作技术,包括new和delete的使用、内存泄漏的问题及其防治措施。通过深入了解这些概念,开发者可以更有效地控制程序的资源使用,提高程序的性能和稳定性。希望本文的内容能帮助你避免常见的内存管理错误,编写出更加健壮和高效的代码。

2024-04-19 21:42:15 735

原创 C++ 类和对象(二)

​在C++ 类和对象(一)中,我们引入了类的定义,并介绍了类的一些相关知识,如类的作用域、实例化和储存等。在本篇博客中,我们将深入探讨C++中类的默认成员函数、构造函数、析构函数、拷贝构造函数、赋值运算符重载以及其他高级特性,进一步揭开C++中“类与对象”的面纱。

2024-04-17 19:02:46 658

原创 C++ 类和对象(一)

在计算机编程的世界里,语言的演进是为了更好地适应开发的需要,提高软件的质量和开发效率。C++作为一种高效的编程语言,它在C语言的基础上增加了面向对象的特性。这篇博客将带你了解C++中类和对象的基础知识,为你打开面向对象编程的大门。

2024-04-12 22:54:22 942

原创 C++入门(二)

​在C++入门(一)中,我们已经探讨了C++的基础知识,包括关键字、命名空间以及输入输出的处理。这些都是构建我们编程基础的重要步骤。今天,我们将进入C++的下一个阶段——C++入门(二)。在这一部分,我们将探讨一些更高级的主题,如函数重载、引用、内联函数、auto关键字、范围for循环以及C++11标准引入的指针空值nullptr。这些主题不仅会加深我们对语言的理解,而且也是提高我们编程技巧的关键步骤。​

2024-03-31 18:30:30 1031

原创 C语言数据结构——常见排序算法(二)

在探索计算机科学的旅途中,排序算法无疑占据了一席重要的地位,它们不仅是理解数据结构与算法设计的基石,更是提高程序性能的关键工具。继常见排序算法(一)对插入排序、选择排序及其相关变种进行了深入的讲解之后,本篇文章旨在进一步扩展我们的视野,探讨如交换排序、归并排序和非比较排序等更多高效的排序策略。通过对这些高级排序技术的剖析,我们将揭示它们背后的设计思想、性能特点及适用场景,以加深对排序算法多样性和复杂性的理解。

2024-03-30 16:03:19 1123

原创 C语言数据结构——常见排序算法(一)

排序是计算机科学中最基础也是最重要的算法之一。在数据处理过程中,将数据集按照一定的顺序重新排列的过程称为排序。排序算法的研究,不仅能够提高我们解决问题的效率,而且对于理解数据结构与算法的设计思想具有重要意义。

2024-03-30 15:04:20 1006

原创 C++入门(一)

在之前的博客中,我们详细探讨了C语言及其在数据结构方面的简单应用,特别的,我们还用C语言动手写了一个简单的贪吃蛇小游戏。毋庸置疑,C语言以其高效和灵活性在程序员中占有重要地位。然而,随着软件开发需求的不断升级和发展,仅靠C语言已经难以满足现代软件开发的复杂性。因此,本系列将引领大家进入C++的世界,这是一门更加强大和灵活的编程语言。

2024-03-26 23:12:58 807

原创 C语言数据结构——二叉树

在计算机科学的广阔天地里,数据结构扮演着构建信息框架的基石角色,它不仅关乎于数据如何在电子空间中被存储,更影响着数据被处理和访问的效率。今天,我们即将踏上一段探索之旅,深入了解一种在计算机科学中极为重要且被广泛应用的数据结构——二叉树。我们将探索二叉树的概念、结构以及它在解决实际问题中的应用,揭开它神秘而又实用的面纱。此次探索不仅将加深我们对数据结构的认识,还会让我们更加熟悉如何通过C语言来实现和操作这一高效的数据结构,为我们未来解决更加复杂的问题打下坚实的基础。

2024-03-21 12:43:11 929

原创 C语言数据结构——队列

在计算机科学领域,数据结构是组织和存储数据的一种方式,它允许我们以有效的方式对数据进行访问和修改。今天,我们将探讨一种基础但极其重要的数据结构——队列。通过学习,我们不仅会了解队列的理论基础,还会深入其实现方式,探讨其应用场景,并通过解决一个实际问题来巩固我们的理解。

2024-03-02 12:00:00 1116

原创 C语言数据结构——栈

在计算机科学中,数据结构是组织、管理和存储数据的有效方式,以便可以高效地访问和修改数据。栈是一种基本的数据结构,它遵循特定的操作顺序,即后进先出(LIFO)。由于其简单和高效的特性,在许多算法和系统功能中都有应用,如系统调用栈、表达式求值和回溯算法等。栈是一种简单而强大的数据结构,它在算法设计和系统实现中扮演着重要的角色。通过静态或动态的方式实现栈,可以在不同的应用场景中有效地利用其后进先出的特性。深入理解栈的工作原理和应用,对于学习更复杂的数据结构和算法是非常有帮助的。

2024-03-01 17:09:03 1749

原创 C语言深入剖析——函数栈帧的创建与销毁

深入理解C语言中函数栈帧的创建与销毁对于掌握程序的执行流程至关重要。函数栈帧存储了函数的参数、局部变量和返回地址等关键信息,每次函数调用时创建,执行完毕后销毁。本篇博客旨在揭开栈帧管理的神秘面纱,通过深入浅出的方式讲解其在程序运行中的角色和影响,帮助读者建立对C语言更深层次的理解,为解决复杂编程问题奠定基础。

2024-02-23 20:58:09 841 3

原创 C语言数据结构——时间复杂度与空间复杂度

在本文中,我们深入探讨了C语言中数据结构的时间复杂度与空间复杂度。通过不同的算法实例,我们理解了如何衡量算法效率,并学习了大O表示法及其在算法性能分析中的应用。我们还看到了如何通过改进算法来优化其时间复杂度,从而提高程序的效率。重要的是请记住,良好的算法设计不仅关注于解决问题,而且还需考虑执行效率和资源利用。在实际的编程实践中,选择和优化合适的算法对于开发高性能的软件至关重要。希望本文能够帮助读者在未来的编程之路上做出更明智的决策,编写更高效的代码。

2024-01-31 23:32:47 1044 2

原创 C语言应用实例——贪吃蛇

本篇博客深入探讨了如何使用C语言结合Win32 API编写经典的贪吃蛇游戏。文章首先介绍了贪吃蛇的历史背景,探讨了其在电子游戏历史中的地位及其在编程学习中的重要性。接下来,文章详细阐述了开发过程中所需的基础知识储备,包括C语言的基本概念和Win32 API的使用方法。文章还系统地介绍了游戏设计的各个阶段,包括游戏逻辑、数据结构设计、游戏流程,以及如何通过代码实现这些设计。此外,文章还提供了完整的代码示例和程序运行演示,帮助读者更好地理解和实践。最后,文章以对如何优化和拓展游戏功能的探讨作为结尾。

2024-01-30 15:52:30 4536 11

原创 C语言数据结构——链表

在计算机科学中,数据结构是存储和组织数据的一种方式,它不仅影响数据的存储,也影响数据的检索和更新效率。C语言,作为一种经典的编程语言,提供了灵活的方式来处理数据结构,其中链表是最基本且重要的一种。

2024-01-28 21:32:36 1826 8

原创 C语言数据结构——顺序表

在程序设计的世界里,数据结构是非常重要的基础概念。本文将专注于C语言中的一种基本数据结构——顺序表。我们将从数据结构的基本概念讲起,逐步深入到顺序表的内部结构、分类,最后通过一个实战项目来具体展示顺序表的应用。

2024-01-20 22:57:11 1047 1

原创 C语言——编译和链接

C语言是最受欢迎的编程语言之一,以其接近硬件的能力和高效性而闻名。理解C语言的编译和链接过程对于深入了解其运行原理至关重要。本文将详细介绍C语言的翻译环境和运行环境,重点关注编译和链接的各个阶段。

2024-01-16 22:14:03 1161 5

原创 C语言——文件操作

在计算机编程中,文件操作是一项重要的任务。通过文件操作,我们可以读取和写入数据,实现数据的持久化存储。C语言提供了丰富的文件操作函数,使得处理文件变得相对简单。本篇博客将介绍C语言中的文件操作,包括文件的基本概念、打开和关闭文件、顺序读写和随机读写等内容。

2023-12-12 22:27:44 144 6

原创 C语言——动态内存管理

在C语言中,动态内存管理是一项重要的任务,允许程序在运行时分配和释放内存。这种机制使得程序更加灵活,能够处理不确定大小的数据结构。本博客将介绍C语言中动态内存管理的各个方面,包括分配、释放、以及常见的错误和柔性数组的使用。

2023-12-08 09:00:47 126 4

原创 C语言——结构体、联合与枚举

C语言是一门广泛应用于系统编程和嵌入式领域的编程语言,其灵活的数据结构是其强大之处之一。在本篇博客中,我们将深入探讨C语言中的结构体、联合体和枚举类型,了解它们的声明、特性以及在实际编程中的应用。

2023-12-01 22:11:13 171 9

原创 C语言——数据在内存中的存储

计算机科学中的一项基础知识是了解数据在内存中的存储方式。C语言是一门直接操作内存的语言,因此理解数据在内存中的存储对于编写高效且可靠的程序至关重要。本文将介绍整数和浮点数在内存中的存储方式,同时探讨大小端字节序的概念。

2023-11-28 19:05:47 181 3

原创 C语言——字符函数、字符串函数和内存函数

在C语言中,字符函数、字符串函数和内存函数是编程中常用的一些工具,它们为处理字符、字符串和内存提供了丰富的功能。本篇博客将介绍一系列与字符、字符串和内存相关的函数,并对其中一些函数进行模拟实现,以加深对它们的理解。

2023-11-26 22:30:08 123 3

原创 C语言——指针(二)

在上一篇博客中,我们探讨了C语言中指针的基础知识,包括指针的定义、内存和地址、指针运算等。在本篇博客中,我们将深入研究指针的高级应用,包括字符指针、数组指针、函数指针等内容。这些概念对于理解和编写更为复杂的C程序至关重要。

2023-11-25 20:33:16 172 1

原创 C语言——指针(一)

在C语言中,指针是一项强大而灵活的特性,为程序员提供了直接操作内存的能力。本博客将深入研究指针的各个方面,包括基本概念、类型修饰、运算、常见问题等。通过深入理解指针,我们可以更好地掌握C语言的核心特性,写出更高效、更灵活的代码。

2023-11-22 23:07:33 131 2

原创 C语言——操作符

在C语言中,操作符是程序员最常用的一种元素之一,它们负责执行各种计算和操作。本篇博客将深入探讨C语言中常见的操作符,包括二进制和进制转换、原码、反码和补码、移位操作符、位操作符、单目操作符、逗号表达式、下标访问和函数调用操作符、结构成员访问操作符、以及操作符的属性等。

2023-11-16 10:18:15 158 2

原创 C语言——函数递归

当涉及到复杂的计算或问题解决时,递归是一种强大的编程技巧,它允许函数在执行过程中调用自身。在C语言中,递归是一种常见的编程范式,它允许程序员解决各种问题,而无需使用复杂的循环结构。在本篇博客中,我们将深入探讨C语言中的函数递归,从基本概念到实际示例,了解如何使用递归解决问题。

2023-11-10 22:35:34 256 2

空空如也

空空如也

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

TA关注的人

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