自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 String类

本文介绍了C++中string类的相关特性,主要包括: auto关键字和范围for循环 auto用于自动类型推导,不能用于函数参数和数组声明 范围for循环底层通过迭代器实现,支持修改元素和只读访问 string类常见接口 构造函数:支持空串、C字符串、重复字符等构造方式 容量操作:size()/length()、capacity()、resize()等 访问遍历:operator[]、迭代器、范围for 修改操作:重点介绍了push_back、append、operator+=、c_str等 string

2025-08-20 14:54:54 709

原创 类和对象(前章)

本文介绍了C++中类和对象的基础概念,重点讲解了类的定义格式、访问修饰符和对象实例化三部分内容。在类定义方面,说明了使用class关键字创建类的基本语法,以及成员变量和成员函数的声明方式。访问修饰符部分详细解析了public、private和protected三种权限的区别及使用场景,通过代码示例展示了不同修饰符对成员访问的限制。对象实例化部分阐述了类与对象的关系,分析了类对象的内存存储方式(成员变量单独存储,成员函数共享),并通过示例代码验证了类对象大小的计算方法。文章还强调了类域的概念及其在成员函数定义

2025-07-31 17:55:00 1071

原创 类和对象(下)

本文深入探讨了C++类和对象的高级特性。首先介绍了构造函数的初始化列表用法,然后详细解析了类型转换机制,包括单/多参数构造函数的隐式转换规则和explicit关键字的作用。其次讲解了static成员的特性和应用场景,通过累加问题案例展示了静态成员变量在对象间共享数据的优势。最后阐述了友元机制,包括友元函数和友元类的使用规则、单向性特点和封装破坏性。全文通过代码示例直观展示了这些高级特性的实际应用,帮助读者深入理解C++面向对象编程的核心概念。

2025-07-31 14:54:34 790

原创 类和对象(上篇)

这篇技术文章主要介绍了C++中类和对象的中篇内容,重点讲解了命名空间和类的默认成员函数。文章首先解释了命名空间的作用和使用方法,包括命名空间的定义、访问方式和展开方式。然后详细介绍了类的6个默认成员函数,包括构造函数、析构函数、拷贝构造函数等。 对构造函数的讲解涵盖了其特点、默认构造函数的多种形式以及编译器生成规则。析构函数部分强调了资源清理的重要性,并说明了不同情况下析构函数的调用机制。拷贝构造函数部分重点阐述了深拷贝和浅拷贝的区别,特别是对于包含资源管理的类需要实现深拷贝的必要性。 文章还通过栈和队列的

2025-07-21 17:32:15 884

原创 构造函数和析构函数

安全性:避免“忘记释放”导致的内存泄漏简洁性:逻辑封装在类内部,代码更易维护异常安全:即使发生异常,析构函数仍会被调用对新手建议学习C++时,优先用构造函数/析构函数管理资源,而非手动new/delete。这是迈向高质量代码的第一步!通过对比可见,C++的构造/析构机制大幅降低了资源管理的难度。理解这一概念,是掌握C++面向对象编程的关键基石!

2025-02-18 16:48:07 1122

原创 C++入门小清单

在上一篇文章中我向大家介绍了关于C++的命名空间的用处以及一些,这篇内容主要是讲解有关C++入门的一些小知识,大家可以通过此文章初步进行一个了解,这些东西在之后的C++学习中都会有更多的妙用,如果有小伙伴感兴趣C++的命名空间,可以点击链接。

2025-02-15 15:44:45 1134

原创 C++ 命名空间的奥秘

在 C++ 的初学之旅中,想必大家对“namespace XXX”这样的语法结构并不陌生。可我们静下心来细想,又有多少人真正理解这个“命名空间”背后的用处与奥妙呢?今天,咱们就一起来探索这个看似简单却至关重要的概念,揭开它神秘的面纱。先来看看这“命名空间”到底是从何而来?又为何而生呢?C++ 是在 C 语言的基础上发展而来的,它的出生就是为了给开发者提供更方便、更强大的功能。在古老的 C 语言中,有一条铁的法则:在同一块地盘(即同一作用域)里,绝对不允许出现同名的标识符,比如变量、函数等。

2025-02-11 20:04:20 1038

原创 排序合集之快排详解(二)

快速排序是一种在实践中广泛使用的高效排序算法。它基于分治策略,平均时间复杂度为O(n log n),使其成为处理大型数据集的理想选择。本文将深入探讨快速排序的各种实现方式、优化技巧以及非递归实现,并通过C语言代码示例进行详细讲解。

2025-02-09 23:59:34 1005

原创 排序合集(一)

希尔排序是插入排序的一种改进版本,通过引入“增量”来分组排序,减少数据的移动次数。它将待排序的元素分成若干组,每组内的元素间距为某个增量,然后对每组进行插入排序。它的名字来源于其工作方式:通过重复遍历待排序的数列,比较相邻的两个元素,如果顺序错误就交换它们。它的核心思想是:每次从未排序的部分中找到最小(或最大)的元素,放到已排序部分的末尾。直接插入排序是一种简单直观的排序算法,就像我们打扑克牌时的操作:每次摸到一张牌,都会把它插入到手中已排好序的牌的正确位置。经过这一轮后,最大的元素会移动到数列的末尾。

2025-02-09 20:56:32 282

原创 相同的树及延伸题型(C语言详解版)

给你两棵二叉树的根节点p和q,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例 1:true示例 2:false示例 3:false两棵树上的节点数目都在范围[0, 100]内。

2025-01-25 17:15:17 1029

原创 二叉树的最大深度(C语言详解版)

给定一个二叉树root,返回其最大深度。二叉树的最大深度是指从根节点到最远叶子节点的最长路径上的节点数。示例 1:3示例 2:2树中节点的数量在[0, 104]区间内。

2025-01-24 19:54:10 1930

原创 单值二叉树(C语言详解版)

如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。只有给定的树是单值二叉树时,才返回true;否则返回false。示例 1:true示例 2:false给定树的节点数范围是[1, 100]。每个节点的值都是整数,范围为[0, 99]。

2025-01-24 19:25:53 559

原创 前k个高频元素

给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出: [1]提示:k 的取值范围是 [1, 数组中不相同的元素的个数]题目数据保证答案唯一,换句话说,数组中前 k 个高频元素的集合是唯一的。

2025-01-21 14:43:43 847

原创 堆的实现(C语言详解版)

(Heap)是一种特殊的完全二叉树,它满足父节点的值总是不大于或不小于其子节点的值。这种数据结构常用于实现优先队列,以及在各种排序算法中快速找到最大或最小元素。和。在最大堆中,父节点的值总是大于或等于子节点的值而在最小堆中,父节点的值总是小于或等于子节点的值。

2025-01-21 14:16:37 1326

原创 循环队列(C语言)

从今天开始我会开启一个专栏leetcode每日一题,大家互相交流代码经验,也当作我每天练习的自我回顾。第一天的内容是。

2025-01-19 12:54:01 1891

原创 0基础leetcode练习(移动零)

这是的网址,大家可以看完博客的思路去练习一下。给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非零元素的相对顺序。,必须在不复制数组的情况下原地对数组进行操作。

2024-08-13 23:50:43 1141 1

原创 库函数的模拟实现(atoi)

还是把的网址给大家放在这里啦!

2024-08-11 23:34:49 588

原创 移除元素OJ详解

给你一个数组 和一个值 ,你需要 原地 移除所有数值等于 的元素。元素的顺序可能发生改变。然后返回 中与 不同的元素的数量。假设 中不等于 的元素数量为 ,要通过此题,您需要执行以下操作:用户评测:评测机将使用以下代码测试您的解决方案:int[] nums = [...]; // 输入数组int val = ...; // 要移除的值int[] expectedNums = [...]; // 长度正确的预期答案。 // 它以不等于

2024-08-11 23:26:26 1133

原创 库函数的模拟实现(memset、memcmp)

还是贴上的网址!

2024-08-10 23:42:07 1794

原创 库函数的模拟实现(qsort)

在讲qsort函数之前我们先得熟悉一下回调函数,看到回调函数这个名词有些小伙伴可能觉得有点陌生,其实他就是通过函数指针调用的函数。不太清楚函数指针的朋友可以看看我之前写的博客,链接在下方。http://深入探寻指针奥秘之"它们"与指针的爱恨情仇回调函数:如果把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用作调用其所指向的函数时,被调用的函数就是回调函数。

2024-08-10 23:19:22 612

原创 库函数的模拟实现(memcpy)

还是老惯例,的网址在这里啦,家人们保存好哟!numsourcesourcesourcesourcememcpyvoid*sourcenumsize_tsourcenum使用memcpy时,开发者需要确保提供的内存区域大小合适,并且正确处理任何可能的内存重叠问题,以避免数据损坏或程序崩溃。如果内存区域可能重叠,应优先使用memmove函数。

2024-08-09 23:27:48 798

原创 库函数的模拟实现(memmove)

还是老规矩给大家伙贴上的网址。sourcememmovesourcesourcenumsourcenum使用memmove时,开发者需要确保提供的内存区域大小合适,并且正确处理任何可能的内存重叠问题,以避免数据损坏或程序崩溃。

2024-08-09 23:10:58 886

原创 浮点型在内存中的存储

在上一期中我们讲到了有关于,新朋友可以点开🔗了解一下,那这一期中我们将讲到的浮点数是不是存储方式和整型一致呢?

2024-08-08 23:59:45 740

原创 整数在内存中的存储

大小端是指计算机存储多字节数据类型(如整数、浮点数等)时字节的排列顺序。它决定了在内存中多字节数据的字节如何组织。

2024-08-08 23:29:23 989

原创 库函数的模拟实现(strerror、perror)

还是老规矩先给家人们把cplusplus地址贴上。函数总结:很重要的一点切勿忘了包含errno.h头文件! 定义文件指针 :声明了一个指向 结构的指针变量 ,这个结构是C语言标准I/O库中用于文件操作的数据结构。尝试打开文件 :检查文件是否成功打开:打印错误信息:四、perror函数拓展perror函数大致功能与strerror相似,但是它会直接将错误信息打印出来。perror函数打印完参数部分的字符串后,再打印一个冒号和一个和空格,再打印错误信息。效果和strerror是一样的。本

2024-08-07 00:14:53 615

原创 库函数的模拟实现(strtok)

还是老规矩先给家人们贴上的网址。

2024-08-07 00:00:51 754

原创 深入探寻指针奥秘之“它们”与指针的爱恨情仇(下)

上一期我们讲到了,没看过的新朋友可以点击链接看一下,这一期我们将继续展开“它们”之间的故事,这个“它们”又是些谁呢,接下来就由我来为大家一一揭晓!

2024-08-06 23:50:18 1145

原创 库函数的模拟实现(strstr)

还是老规矩给大家贴上cplusplus的网址,这个网站很好用,大家都收藏好哟!函数总结:不要忘记包含头文件string.h,这里我们还用到了const修饰来保证变量的安全性,对const和assert不是很了解的朋友可以去看一下我的深入探寻指针奥秘这篇博客,里面有详细的讲解到!我们来看一下打印出来的效果会是什么样,大家可以先自己预测一下结果会是什么。我们这里正确的找到了C language的位置从第7位开始。 函数定义:这个函数有两个参数,是要搜索的字符串,是我们要在中搜索的子字符串。函数返

2024-08-05 23:06:16 778

原创 库函数的模拟实现(strncpy、strncat、strncmp)

这篇文章我们将会讲到三个库函数的模拟实现,前面文章所讲到的strcpy、strcat、strcmp他们为长度不受限制的字符串函数,而今天要讲到的是长度受限制的字符串函数,因为前面函数的铺垫这次我们三个函数一起讲完。新朋友可以点击链接观看一下之前的库函数模拟实现内容。好的接下来让我们开始本讲的内容。

2024-08-05 22:45:39 1368

原创 库函数的模拟实现(strcat、strcmp)

在C语言中,如果源和目标内存区域有重叠,但不是在目标数组的开头,使用。

2024-08-03 16:53:33 1016

原创 深入探寻指针奥秘之数组与指针的爱恨情仇(上)

-----家人们,答应你们的指针下一篇来啦,这期我们就来详细讲讲指针与数组之间的爱恨情仇!!!

2024-08-03 16:33:33 1144

原创 库函数的模拟实现(strcpy)

因为我们要返回的是字符串的指针那么我们的函数定义应该是char * my_strcpy(char * dest,const cahr * src)这里是因为目标空间必须可修改所以char *dest不能用const修饰。三、strcpy模拟实现好啦现在根据我们的思路来实现以下吧,代码中提及到的assert和const我在。

2024-08-02 12:44:52 443

原创 库函数的模拟实现(strlen)

我们先来看看这个函数在cplusplus里的使用说明1.strlen函数:用于计算字符串的长度,它接收一个const char *类型的参数,即指向字符数组的指针,并返回一个size_t类型的值,表示从字符串的起始位置到终止的空字符(null terminator,即’\0’)之间的字符数量。2.字符串长度与数组大小的区别:在C语言中,字符串以空字符结尾,这个空字符是字符串的一部分,但不计入strlen函数返回的长度。例如,char mystr[100]=“test string”;

2024-08-02 12:13:35 577

原创 深入探寻指针奥秘(0基础教学)

引子------谈及指针这个知识点是不是会感到“不寒而栗”,没关系从这篇文章开始我们来一步步的揭开指针的神秘面纱。

2024-08-01 13:08:54 1170

原创 扫雷游戏保姆级教程(我不信你还不会!!!)

扫雷游戏,这算是一个家喻户晓的游戏了。没完过的话也可以试着玩一玩,大致规则就是在最短时间把所有的所有的雷排查出来即为胜利,如果在期间踩到雷则游戏失败(结束)。那么这篇博客就来介绍如何C语言实现扫雷游戏的具体步骤。扫雷游戏网页版链接👉。

2024-07-28 16:59:25 1200 1

原创 分支与循环实战之猜数字游戏

在前两篇文章我向大家详细讲解了关于分支与循环所涉及的知识,现在让我们利用所学知识来进行实操一个小项目。首先在设计程序前我们先搞清楚我们这个项目需要实现什么功能。

2024-01-29 17:42:09 1525 1

原创 分支和循环还学不懂?!看这篇就够了!!!(循环篇)

C语言是一个结构化的程序语言。有顺序结构、选择结构、循环结构。那C语言可以通过什么来实现这些结构呢。我们可以通过if、switch来实现分支结构,通过for、while、do while来实现循环结构。这一篇文章我将会对循环结构所涉及的语句展开详细讲解。

2024-01-25 17:15:04 1337

原创 分支和循环还学不懂?!看这篇就够了!!!(分支篇)

公主王子们,要多自己敲代码实践一下哟,下一篇我将会为大家继续分享循环篇。

2024-01-23 22:12:42 867 1

空空如也

空空如也

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

TA关注的人

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