- 博客(17)
- 收藏
- 关注
原创 构造函数和析构函数
本文介绍了C++中构造函数和析构函数的基本概念。构造函数类似于初始化函数,系统会默认生成并自动调用,示例展示了日期类的全缺省构造函数实现,包括参数赋值和日期有效性检查。析构函数则类似于销毁函数,系统同样会默认生成并自动调用,文中日期类的析构函数将成员变量重置为默认值。这两类特殊函数在对象生命周期管理中起着关键作用。
2025-09-30 20:03:05
141
原创 拷贝构造和运算符重载
本文介绍了C++中的拷贝构造函数和运算符重载。拷贝构造函数通过引用已存在对象来初始化新对象,并以Date类为例展示了实现方法。运算符重载部分重点讲解了+=和+运算符的实现,包括处理日期跨月、跨年的逻辑调整。这些技术实现了自定义类型间的运算符操作,增强了代码的可读性和易用性,是C++面向对象编程的重要特性。
2025-09-30 19:56:05
302
原创 基本排序算法实现
本文介绍了常见的排序算法,包括插入排序(直接插入排序和希尔排序)、选择排序(直接选择排序和堆排序)和交换排序(冒泡排序、快速排序及其变种)。每种算法都给出了C语言实现代码,并总结了其特性:时间复杂度、空间复杂度和稳定性。其中,快速排序介绍了三种实现方式(hoare、挖坑法和前后指针法)以及三路划分和非递归版本。这些排序算法各具特点,适用于不同场景,如直接插入排序适合接近有序的数据,而堆排序和快速排序则具有较好的平均时间复杂度。
2025-08-05 19:31:17
281
1
原创 树的复习实现
本文介绍了树这种非线性数据结构的基本概念和实现方法。树是由有限节点组成的层次结构,具有根节点、子节点等特性,采用递归定义方式。文章提供了二叉树的基本操作公式,包括求父节点和子节点的位置计算。在代码实现部分,详细展示了二叉树的C语言实现,包括前序/中序/后序遍历、节点计数、查找、销毁等核心功能,以及层序遍历和判断完全二叉树的算法。最后通过测试代码构建了一个示例二叉树,并演示了各种功能的调用和验证。整个实现体现了递归编程思想在树结构处理中的典型应用。
2025-08-04 14:12:23
210
原创 C++入门
本文介绍了C++语言的核心特性和发展历程。C++由Bjarne Stroustrup于1979年在C语言基础上开发,1983年正式命名,1998年完成标准化。与C语言相比,C++增加了面向对象特性,引入了命名空间(namespace)解决命名冲突,使用cout/cin进行输入输出,支持缺省参数、函数重载、引用(&)和内联函数(inline)等特性。文章通过示例代码展示了这些特性的基本用法,并解释了它们的设计初衷和优势。最后指出C++11引入的nullptr比传统的NULL更安全可靠。这些特性使C++
2025-07-31 20:14:00
1430
原创 栈和队列的实现
本文介绍了栈和队列两种基本数据结构的概念与C语言实现。栈是遵循后进先出(LIFO)原则的线性表,实现了初始化、压栈、出栈等基本操作;队列则是遵循先进先出(FIFO)原则,实现了入队、出队等操作。文中提供了完整的C语言实现代码,包括数据结构定义、基本操作函数实现及测试用例,展示了栈和队列的动态内存管理及基本功能验证。通过对比两种数据结构的特性差异,帮助理解它们各自的应用场景和实现要点。
2025-07-18 21:15:06
310
原创 链表的实现
本文介绍了单链表和双向链表的基本概念与实现。单链表包含节点结构定义、基本操作接口(打印、动态申请节点、头尾插入删除等)和完整实现代码。通过测试文件展示了链表创建、增删查改等操作示例。双向链表部分简要提及但未展开详细内容。代码采用模块化设计,包含头文件声明和实现文件分离,演示了链表的基本操作流程,如尾插、头插、查找定位、指定位置插入删除等核心功能,最后包含链表销毁操作。
2025-07-18 20:16:04
171
原创 顺序表的简单实现
本文介绍了顺序表的基本实现方法,主要包括以下内容:1)顺序表的结构定义,包含数据数组、有效数据个数和容量;2)基本操作函数:初始化、销毁、检查空间容量;3)核心功能:尾插尾删、指定位置插入删除元素、查找元素等操作。代码采用C语言实现,通过动态扩容机制处理空间不足的情况,并对边界条件进行检查处理。这些操作构成了顺序表这一基础数据结构的基本功能框架。
2025-06-24 17:23:49
370
原创 编译和链接简单版
在 ANSI C 的任何⼀种实现中,存在两个不同的环境。第1种是翻译环境,在这个环境中源代码被转换为可执⾏的机器指令(⼆进制指令)。第2种是执⾏环境,它⽤于实际执⾏代码。
2025-05-30 23:22:35
361
原创 文件操作基础
fopen是用来打开文件的,打开之后才能进行读写操作,用完之后用fclose关闭文件//文件的原形fopen的返回值是FILE* 第一个参数是文件在哪里,第二个参数是用什么方式打开参考下图。
2025-05-30 22:51:49
2038
原创 数据在内存中的存储
在这个图片里面a为0x11223344,其中44是数据的低地址,存放在内存的低地址处,11为数据的高地址存放在内存的高地址处,说明在vs2022里面采用的是小端存储模式。对于32位的浮点数(float),最⾼的1位存储符号位S,接着的8位存储指数E,剩下的23位存储有效数字。对于64位的浮点数(double),最⾼的1位存储符号位S,接着的11位存储指数E,剩下的52位存储有效。那么,按照上⾯ V 的格式,可以得出S=0,M=1.01,E=2。那么,S=1,M=1.01,E=2。补码:反码+1就得到补码。
2025-05-24 16:34:51
944
1
原创 atoi模拟实现
本文介绍了如何在C/C++中实现自定义的atoi函数,用于将字符串转换为整数。文章首先概述了标准atoi函数的基本功能,包括跳过前导空白字符、识别正负号以及遇到非数字字符时停止转换。接着,提供了一个基础实现版本,展示了如何处理这些功能,并通过代码示例进行了测试。最后,文章鼓励读者分享在实际项目中遇到的atoi相关Bug或更优雅的实现方式,并邀请点赞和分享。通过本文,读者可以深入理解atoi的内部实现原理,提升编程能力。
2025-05-19 14:16:04
457
1
原创 冒泡排序实现qsort函数
本文介绍了如何使用冒泡排序算法模拟实现C语言中的qsort函数。首先,my_qsort_bubble函数通过双重循环遍历数组,并使用用户自定义的比较函数cmp来判断元素顺序,若顺序不符合则调用my_swap函数进行交换。my_swap函数通过逐字节交换数据,确保无论数据类型如何都能正确交换。这种实现方式灵活且通用,适用于各种数据类型的排序需求。
2025-05-14 22:42:29
330
原创 普通扫雷游戏
99# pragma once # include <stdio.h> # include <stdlib.h> # include <time.h> # define ROW 9 # define COL 9 # define ROWS ROW + 2 # define COLS COL + 2 # define EASY_COUNT 79 //数组初始化 void init_board(char board [ ROWS ] [ COLS ] , int r , int c , char set);
2025-04-22 15:04:01
378
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅