- 博客(24)
- 收藏
- 关注
原创 C++string
这篇博客深入探讨 C++ 中的字符串类及其功能。介绍成员函数,包括构造函数、析构函数和赋值重载,理解字符串对象的创建与销毁过程以及如何有效地复制字符串数据。接着,讨论迭代器的使用、字符串操作的基本函数、成员常量和非成员函数重载等
2024-11-03 14:52:31 696
原创 C++模版初阶
本篇博客深入探讨C++中的模板编程,特别是函数模板和类模板的基本概念。首先,泛型编程为我们提供了一种编写通用代码的方法,使函数和类能够处理不同数据类型,提高了代码的复用性。接着,介绍函数模板的定义格式,以及其原理和实例化过程,帮助读者理解如何创建灵活的函数。此外,讨论模板参数的匹配原则,以确保模板能够正确应用于特定类型。最后,逐步解析类模板的定义格式,展示如何利用类模板实现更复杂的数据结构和算法。些内容将为初学者打下坚实的基础,助力他们在使用C++进行泛型编程时更加得心应手。
2024-10-24 15:44:19 488
原创 C++内存管理
本篇博客深入探讨C/C++语言中的内存管理机制,从基础的内存分布到动态内存管理方式,详尽解析这两种语言的内存使用特征。首先介绍C语言的动态内存管理方式,包括使用malloc和free函数的基本方法,然后对比C++中的内存管理方式,重点分析new和delete的使用,并探讨如何通过这些操作符来管理自定义类型的内存。还将深入研究operator new和operator delete函数的实现,揭示其背后的工作原理。同时,讨论如何使用定位new表达式(placement-new)在特定内定内存地址上构造对象。
2024-10-20 16:13:42 1122
原创 C++基础---类和对象(下)
本博客深入探讨C++中的关键概念,涵盖构造函数、类型转换、静态成员、友元、内部类、匿名对象以及对象拷贝的编译器优化。首先分析构造函数的不同类型及其在对象初始化中的作用。接着,讨论隐式和显式类型转换的方法及其应用场景,确保安全性和高效性。静态成员的共享特性及其对内存管理的影响也是重点之一。此外,解析友元的使用,为不同类之间提供必要的访问权限。内部类的定义及其在复杂数据结构中的应用也会被详细讲解。匿名对象的特性将展示其在代码简化中的优势。最后,探讨对象拷贝时编译器如何通过优化技术来减少不必要的拷贝操作。
2024-10-20 16:10:11 648
原创 C++基础---类和对象(中)
这篇博客探讨C++中的类与对象的基本概念,涵盖了默认成员函数、构造函数与析构函数的作用及实现方式。构造函数是初始化对象的重要工具,而析构函数则负责清理资源,确保内存管理的安全性。此外,详细介绍拷贝构造函数和赋值运算符重载,它们在对象复制和赋值过程中扮演着关键角色。为了更好地理解这些概念,还将讨论运算符重载的基本原理,以及如何实现取地址运算符的重载。特别关注的是 const 成员函数和取地址成员函数的重载,这些机制使得代码更加灵活与安全。
2024-10-11 15:19:55 1035
原创 C++基础---类和对象(上)
在本篇博客中,将深入探讨类的定义及其相关概念。首先,我介绍类的定义格式,包括访问限定符的作用和类域的设置,帮助读者理解如何构建一个有效的类。在实例化部分,解析实例化的概念以及对象大小的影响,阐明如何在实际开发中合理使用类和对象。接着,讨论this指针的功能,揭示其在类方法中的重要性,特别是在区分成员变量和参数时的应用。
2024-09-30 13:57:33 1048
原创 C++入门篇
本博客将深入探讨C++编程语言中的关键概念,旨在帮助读者提升编程技能。我们将首先介绍命名空间的价值、定义与使用,强调如何有效组织代码以避免命名冲突。接着,将涵盖C++的输入输出机制,指导如何高效处理数据交互。我们还将讨论缺省参数和函数重载,使你的函数更加灵活。此外,引用的部分将深入探讨其概念、特性和应用,包括const引用的优势及引用与指针的关系。内联函数是优化性能的重要工具,我们将分析其优缺点,并探讨在何种情况下使用内联函数最为合适。最后,我们会介绍nullptr,帮助读者更安全地管理指针。
2024-09-23 18:07:21 683
原创 常见排序(C语言版)
本文将深入探讨排序的概念及其广泛应用。首先,我们将明确排序的定义,并阐述其在数据处理和算法优化中的重要性。接着,文章将详细介绍几种常见的排序算法,包括插入排序、选择排序、交换排序、归并排序以及非比较排序等,每种算法的基本思想和实现方式都会逐一解析。此外,还会提供代码示例,以便读者能够更好地理解算法的具体操作。同时,针对每种排序算法,文章将分析其时间复杂度和稳定性,帮助读者选择适合特定需求的排序方法。通过这些内容,读者不仅能掌握各种排序算法的理论基础,还能在实际编程中灵活应用,提升数据处理效率。
2024-09-21 12:57:22 930
原创 数据结构---非线性--树
本文将详细介绍树及其变体在计算机科学中的应用及实现。首先,将概述树的基本概念、结构及其实际应用,包括树的表示方法及在各种应用场景中的重要性。接着,深入探讨二叉树的基本概念、特殊类型及其性质,并比较顺序存储和链式存储这两种主要存储结构。在探讨二叉树的顺序结构及实现时,重点讲解堆的概念与结构,涵盖堆的向上和向下调整算法、建堆的时间复杂度以及堆的插入和删除操作,并讨论堆在排序和Top-K问题中的应用。最后,讨论二叉树的链式结构实现,包括各种遍历方式(如前序、中序、后序和层序遍历)和常见接口。
2024-09-13 13:36:33 948 1
原创 数据结构---线性表--栈和队列
栈和队列是计算机科学中两个基本而重要的数据结构,它们各自解决了不同类型的问题。栈(Stack)是一种后进先出(LIFO)的数据结构,其操作包括将元素压入栈顶和从栈顶弹出元素。由于其特性,栈非常适合用于处理递归函数调用、算法的回溯以及撤销操作等场景。它的主要优势在于操作简单且高效。队列(Queue)遵循先进先出(FIFO)原则,意味着最早加入队列的元素最早被移除。队列的操作包括将元素添加到队列尾部和从队列头部移除元素。这种结构适合用于任务调度、数据流处理、打印任务等需要维护处理顺序的场景。
2024-09-02 21:02:30 388
原创 数据结构---线性表--链表
这篇博客深入介绍了单链表和双向链表这两种常见的链表数据结构。单链表通过节点之间的单向指针连接实现元素存储和访问,而双向链表则在节点中引入了额外的指针,使得元素的访问更加灵活。文章从结构、特点以及操作等方面逐一比较了它们的异同,并提供了实例帮助读者更好地理解两者之间的差异与应用场景。
2024-05-04 16:55:30 523
原创 数据结构---线性表--顺序表
这篇博客深入介绍了顺序表这种数据结构的基本概念和特点。顺序表是一种线性表,元素在内存中连续存储,通过索引快速访问。文章详细解释了顺序表的插入、删除、查找等操作,并分析了其时间复杂度。通过实例说明了顺序表在实际应用中的优势和限制,帮助读者更好地理解和应用顺序表这一重要的数据结构。
2024-05-04 02:00:00 439
原创 C语言自定义数据类型
这篇博客深入探讨了C语言中的自定义数据类型,包括结构体、联合体和枚举。通过详细解释每种类型的定义、特点和用法,读者可以了解如何利用这些数据类型来组织和管理复杂数据结构。从结构体的成员变量到联合体的共享存储空间,再到枚举的常量定义,本文逐一介绍了它们的优势和应用场景,帮助读者更好地理解和运用C语言中的自定义数据类型。
2024-05-02 03:30:00 2120 1
原创 C语言动态内存管理
这篇博客深入探讨了C语言中的内存管理函数malloc、calloc、realloc和free,以及柔性数组的概念。malloc用于动态分配内存空间,calloc除了分配内存还会初始化为0,realloc用于重新分配已分配的内存,free用于释放动态分配的内存。柔性数组是C语言特有的一种技巧,允许在结构体最后一个元素后定义可变长度数组,实现更灵活的内存分配。深入了解这些概念可以帮助程序员更好地进行内存管理和优化。
2024-05-01 17:33:26 2041 2
原创 数据结构---时间复杂度+空间复杂度
这篇入门级博客介绍了数据结构中的重要概念:时间复杂度和空间复杂度。时间复杂度描述算法执行所需的时间量级,通常用大O符号表示;空间复杂度则指算法解决问题所需的内存空间大小。通过理解时间复杂度和空间复杂度,可以帮助我们评估和比较不同算法的效率和资源消耗情况,从而优化程序性能。
2024-05-01 14:49:52 1901
原创 C语言编译和链接
C语言的编译和链接是将源代码转换成可执行程序的关键步骤。编译器将源代码翻译成汇编语言,然后汇编器将其转换成机器语言的目标文件。链接器将这些目标文件和库文件组合成单个可执行文件,解决符号引用,创建最终的可执行程序。这个过程包括编译、汇编和链接三个主要阶段,确保了程序的正确性和可执行性。
2024-04-21 23:31:46 1194 1
原创 C语言字符函数和字符串函数
strlen的模拟实现有几种不同的实现方案.可以直接遍历字符串元素,设置计数器递增的方式,这种方式需要创建变量,那要是不创建变量呢?当然可以,一种是通过指针的运算(首指针-尾指针),另一种是通过递归的方式.• 字符串以 '\0' 作为结束标志,strlen函数返回的是在字符串中"\0"前面出现的字符个数(不包含'\0')streorr可以将参数部分的错误码对应的错误信息的地址返回来。• 注意函数的返回值为size_t,是无符号的( 易错 )• 参数指向的字符串必须要以 '\0' 结束。
2024-04-20 21:27:53 823 1
原创 C语言文件操作
C语言提供了丰富的文件操作函数,使得程序可以对文件进行读取、写入和修改等操作。通过文件操作函数,程序可以打开文件、读取文件内容、写入数据到文件、关闭文件等。常用的文件操作函数包括fopen()用于打开文件,fclose()用于关闭文件,fread()用于读取文件内容,fwrite()用于写入数据到文件,feof()用于检测文件结束等。文件操作在C语言中是非常重要的,它使得程序可以与外部文件进行交互,实现数据的持久化存储和读取,提高了程序的灵活性和实用性。
2024-04-19 19:40:20 1017 1
原创 C语言数据在内存中的存储
这篇博客深入探讨了计算机中整数和浮点数的存储方式,以及大小端字节序的概念。整数通常以补码形式存储在内存中,而浮点数采用IEEE 754标准进行表示。此外,介绍了大端字节序和小端字节序的区别,以及如何通过检查内存中数据的存储顺序来判断当前系统的字节序类型。这些知识有助于理解计算机底层数据存储的工作原理。
2024-04-13 15:53:46 713
原创 C语言指针详解
C语言中指针是一种强大的工具,它提供了对内存地址和数据的直接访问,极大地增强了程序的灵活性和效率。通过指针,程序员可以在内存中动态分配空间、操作复杂数据结构,并实现高效的数据传递。
2024-04-12 15:50:30 966 1
原创 C语言内存函数
C语言中的内存函数memmove用于移动内存数据,即使内存区域重叠;memset用于设置内存区域的值;memcpy用于复制内存数据,要求源与目标不重叠;memcmp用于比较内存区域内容。这四个函数在处理字符串、数组和结构体等数据时非常实用,帮助程序员高效地管理内存和进行数据操作,是C语言开发中不可或缺的工具
2024-04-07 14:51:36 833 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人