- 博客(30)
- 收藏
- 关注
原创 c++继承
继承是C++面向对象三大特性之一,实现代码复用和层次结构。派生类通过公有/保护/私有继承方式获取基类成员,访问权限由继承方式和成员限定符共同决定(如公有继承保留基类public成员权限)。派生类与基类间存在赋值转换规则:向上转换(派生→基)允许隐式进行但可能发生对象切片;向下转换(基→派生)需强制类型转换且存在风险。继承体系中作用域独立,同名成员会隐藏基类版本,可通过作用域运算符访问。派生类默认成员函数(构造/析构等)会自动调用基类对应版本,优先处理基类部分再处理派生类成员。
2025-06-08 03:24:05
862
1
原创 priority_queue的介绍和使用
本文介绍了C++中的优先级队列priority_queue,它是一个基于堆实现的容器适配器。文章首先展示了priority_queue的基本使用示例,演示了默认大顶堆的行为。接着详细解析了其模板参数:数据类型、底层容器(默认为vector)和比较器(默认为less构建大顶堆)。通过示例代码展示了如何使用greater构建小顶堆。随后给出了一个自定义priority_queue的实现,包括核心的adjustup和adjustdown堆调整算法,以及push、pop等接口的实现原理。该实现支持模板化配置底层容器
2025-05-26 16:53:00
818
原创 list重点接口及模拟实现
C++中的list是一个基于双向链表实现的容器,支持高效的插入和删除操作,尤其在任意位置的操作上优于vector。list通过改变节点指向来实现插入和删除,时间复杂度为常数。主要接口包括构造、容量检查、元素访问和修改操作等。list的迭代器在删除操作中会失效,但通过返回值更新迭代器可以避免问题。list的模拟实现代码可通过提供的Gitee仓库访问和探讨。
2025-05-17 22:26:14
1022
原创 vector的模拟实现及底层原理
本文介绍了如何通过C++模板手写一个轻量但功能完善的vector容器,深入解析了其底层原理。文章从迭代器定义、成员变量设计、构造与析构、存储管理、核心操作等方面详细讲解了vector的实现过程。通过手写vector,读者可以更好地理解STL容器的数据结构、内存模型与算法设计,掌握动态内存管理、扩容算法、copy-swap技术等关键知识点。文章还提供了测试示例和代码源文件地址,适合希望深入理解STL容器原理的读者。
2025-05-14 01:14:34
369
原创 Linux代码编写
Vim是一款功能强大的文本编辑器,支持多种模式,包括正常模式、插入模式和末行模式。在正常模式下,用户可以通过快捷键进行光标移动、文本编辑、删除复制粘贴、撤销重做以及查找替换等操作。插入模式用于文本输入,而末行模式则用于执行保存、退出等命令。Vim的操作需要通过Esc键在不同模式间切换。此外,GCC是用于编译C语言代码的工具,而G++用于编译C++代码。使用GCC或G++编译代码时,可以通过命令行指定源文件和生成的可执行文件。在C++11标准下编译时,需添加-std=c++11参数。
2025-05-12 16:10:19
900
原创 Linux权限
命名行解释器有以下几种:命名行,bash/sh,shll(统称),图形化界面也是一种命名行解器,他们是不同命名行的不同样式。向系统发送指令,让系统理解我们的需求并运行。Linux有两个部分:1.Linux内核,2.shell(Linux外壳)
2025-05-08 00:52:08
337
原创 C++ 自定义 string 类模拟实现
我们定义一个名为的类,内部通过char* _str持有字符串数据,并自己管理_capacity和_sizechar* _str;// 字符串数据// 已用长度// 总存储容量提供基础功能:构造/拷贝/赋值/析构,字符输入输出,接合操作,定位查找,字符串插入和删除等。这个类完整采用原生编程方式,本身展示了 C++ 基本内存管理、负责编程和类操作算符量的全过程实现。它是学习 C++ 基础的一个非常好的实战练手项目。
2025-05-06 00:59:35
383
原创 Linux基本指令
ls(list)命令用于列出指定目录下的文件和子目录。如果未指定路径,默认列出当前工作目录的内容。ls该命令会输出所有的名称,按列排列显示。
2025-04-30 01:51:21
497
原创 类和对象(中)
如果一个类中一个默认成员函数也没有那这个类我们叫作空类。但是如果一个类中每有默认成员函数的话,会怎样呢?答案是编译器会帮我们自动实现类。
2025-04-23 19:26:11
1151
原创 C++类和对象(上)
C和C++最大的不同就是在C语言中,C语言注重的是编程的顺序,就比如我们洗衣服,在C语言里面我们得按照加水->加洗衣液->侵泡会·····。如下图所示,注重的是洗衣服的过程。而,注重的是在洗衣服这个过程中参与的对象在这里更像是我们观察这个过程都有谁参与。还是洗衣服,现在是机洗,这个时候我们注重的就是洗衣服这个过程中有谁,。这。
2025-04-18 09:25:36
1064
原创 C语言指针详解(四)
在前面的博客中,其实我们已经间接的了解了整形指针,也就是是存放整型变量的地址的,但是在C语言里面,我们不单单自只有还有.等等的地址,那么这些类型的地址我们怎么表示呢?我们往下看。
2025-04-12 00:21:05
370
原创 C++入门
定义命名空间会用到namespace关键字、namespace jp //jp是命名空间的名字//命名空间可以定义变量,函数,类型int i;return sum;int rent;//命名空间可以嵌套int c;······//还有就是同一个工程可以拥有相同的命名空间名字//编译器最后会合并为一个命名空间命名空间其实是一个域(命名空间域)概念和在C语言里面的全局域和局部域相同,通俗一点其实就是使用范围。
2025-04-09 22:01:48
1089
原创 C语言指针详解(三)
在 C语言中,这样的一块代码这里的arr除了表示一个整形数组外还有什么意思?答案是它所打印的结果正是arr[0];这个时候我们可以得到这样的一个结论,也就是arr等效于&arr[0];但是在所有的情况下数组名都等于首元素的地址吗?我们继续往下看。
2025-04-03 16:07:18
301
原创 数据结构栈和队列的模拟实现
栈(Stack)是一种后进先出(LIFO, Last In First Out)的数据结构,而队列(Queue)是一种先进先出(FIFO, First In First Out)的数据结构。为了使用队列实现栈,我们可以使用两个队列。这两种方法分别实现了栈与队列的互相模拟,并保证了基本操作的正确性和效率。操作时,直接往非空队列中插入数据。个元素移动到空队列中,最后删除。操作时,将非空队列中的前。类似,只是不删除元素。
2025-03-23 02:33:08
357
原创 C语言指针详解(二)
const的作用是或参数的只读属性,防止被修改。接下来我们讨论一下const这个关键字的用法。我们了解了指针接下俩我们看一下指针的安全性问题。
2025-03-23 02:15:02
543
原创 C语言指针详解(一)
在讲内存前先导入一个生活中的一个小常识。在学校宿舍楼内,每一个房间的大小是固定的,比如说,一个房间住8个学生。这个时候你要找一个人,你首先会去找什么?毋庸置疑肯定是去问一下该同学宿舍的编号。然后再通过宿舍编号去对应的宿舍找人。
2025-03-14 01:55:12
845
原创 memcpy函数copy结构体方法
在上面代码中:返回一个任意类型的指针;:是目标内存地址(要复制的内存区域):原内存地址(要复制的数据的首地址):要复制的字节数需要注意的是memcpy函数不同于strcpy函数。memcpy函数可以复制,而strcpy函数只能复制这个函数在遇见==‘\0’==的时候不会停下来目标内存和原内存不能有任何重叠。
2025-03-04 00:32:42
390
原创 qsort函数进阶用法——排序结构体
函数中比较的是字符串使用了一个strcmp函数这个字符串的作用是比较两个字符串的大小,前面的博客有讲。还需要注意的是写本代码需要提前掌握。在这个代码中需要注意的是。
2025-02-18 18:12:20
291
原创 qsort函数使用
compar参数是一个比较函数,它必须返回一个整数值:如果第一个参数小于第二个参数,返回负数。如果第一个参数等于第二个参数,返回0。如果第一个参数大于第二个参数,返回正数。int:函数返回一个整形void:函数接收任意类型的参数const:所接受的参数的值不能被改变。
2025-02-18 13:12:13
448
原创 C 语言指针类别指南
C 语言的指针种类繁多,但本质上都是用于存储变量的内存地址。熟练掌握指针的不同类型和用法,将极大提升你的 C 语言编程能力。在实际编程中,合理使用指针能提高程序的灵活性和效率。希望本文能帮助你更好地理解 C 语言中的指针!
2025-02-01 14:57:40
489
原创 什么事非得用指针?
指针通俗来说就是。这里,变量a的值 10 存储在内存的某个位置,但如何才能访问到这个值呢?我们可以通过来获取变量a的内存地址。a*papa。
2025-01-26 20:14:45
305
原创 vs软件调试技巧
相信很多朋友都听说过bug这个词语,那么bug是怎么来的呢?相信很多朋友都听说过“Bug”这个词,但你知道它的起源和含义吗?在软件开发中,Bug 通常指程序中的错误或缺陷,导致程序无法正常运行或产生预期之外的结果。这些错误可能出现在代码的逻辑设计、输入输出处理、内存管理等多个方面。当我们发现程序中出现问题的时候,下一步要做的就是找出问题,再找问题这一个过程就叫做调试(debug)debug翻译过来就是消灭bug的意思。
2025-01-14 22:31:17
887
原创 C语言《扫雷游戏实现》
通过本次扫雷游戏的实现,我们综合运用了C语言中的数组、随机数、条件判断与循环控制等技术,同时通过模块化编程提高了代码的可读性和复用性。如果你对C语言感兴趣,不妨尝试自己实现或优化这个游戏,享受编程的乐趣!优化方向提示:玩家可选择难度。
2025-01-08 22:34:31
656
原创 轻松入门分支于循环
C语言中的分支结构和循环结构是控制程序流程的基本工具。通过合理使用if语句、switch语句以及三种循环结构(forwhiledo-while),我们可以轻松实现条件判断和重复操作。此外,关系操作符是判断条件的关键,熟练掌握它们将帮助你编写更加高效和灵活的代码。
2024-12-04 10:47:23
753
原创 从零开始:我的成长之旅
大家好,我是小鹏,目前就读于机器人工程专业,预计于2026年毕业。由于在校学习内容广泛且不够深入,我决定自学C语言和嵌入式系统相关知识。通过自学,我希望能够掌握更多实用技能,并在未来的职业生涯中有所应用。我将会在以后的学习过程中将自己的经验和遇见的困难分享在优快云,如果你对C语言、嵌入式系统或者机器人工程有任何问题,欢迎留言交流。
2024-12-02 15:42:41
450
原创 stm32单片机点亮一个led灯跟闪烁
/GPIO_Speed_50MHz设置引脚数度为50Hz。//GPIO_Pin_0指定引脚0。思路:STM32点亮一个led灯通常会需要用到GPIO(通用输入/输出)引脚实现。2.配置 GPIO 引脚:GPIO引脚的配置包括模式,速度,引脚号,可使用。
2024-11-20 00:18:59
1031
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅