自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 结构体 引用 类 初始化

结构体传递给函数,实参取结构体变量的地址,函数的形参用结构体指针。用memcpy()函数把结构体中全部的元素复制到另一个相同类型的结构体(只适用于C++基本数据类型)。还是那句话,结构体的创建相当于自己创建的一个数据类型,在使用函数进行传参的时候和普通的没有区别。假设数组的数据类型是不是c++基础类型,而是自定义类型,这时候就需要结合数组了,但是也是类似的。接下来有个问题,结构体是可以包含指针的,那么这个指针怎么使用、初始化的时候指针是什么状态?,可以将多种数据的表示合并到一起,描述一个完整的对象。

2025-12-02 17:37:10 396

原创 模版 c++

在这里讲讲所谓的模版在c++的应用。通过字面就可以直到大致上的模版的作用以及诞生的原因了。“模板” 是 C++ 中一种的工具,目的是让你写一份代码,能适配多种不同的数据类型,不用为每种类型重复写相似的代码。打个比方:你想做一个 “交换两个东西” 的工具,既能交换两个数字,也能交换两个字符串,还能交换两个自定义的 “学生” 对象。如果没有模板,你可能需要写 3 个不同的函数;但有了模板,你只需要写 1 份代码,就能自动适配所有类型。。普通函数的参数是 “值”(比如int a中的a。

2025-11-11 23:28:30 683

原创 指针,数组,变量

如果把函数的形参声明为指针,调用的时候把实参的地址传进去,形参中存放的是实参的地址,在函数中通过解引用的方法直接操作内存中的数据,可以修改实数的值,这种方法被通俗的称为。我们在堆上申请一块内存空间,然后用指针指向它,当我们不用的时候将内存中的信息清空,指针消失,以此来管理堆,以此完成动态分配(new,detlete))指针指向的变量已超越变量的作用域(变量的内存空间已被系统回收),让指针指向了函数的局部变量,或者把函数的局部变量的地址作为返回值赋给了指针。这时候的指针就相当于只能读取,而无法更改。

2025-11-10 22:45:08 1119

原创 Linux 线程

1. 线程与进程的区别进程:拥有独立的地址空间和PCB(进程控制块),是操作系统资源分配的基本单位。线程:没有独立的地址空间,而是共享其所属进程的地址空间,但每个线程都有自己的PCB,是CPU调度的基本单位。从控制角度时说。控制回路有3条路,反馈,前馈,前向,输入以及输出。整个,PCB管理这个系统的整体资源(内存、IO设备、定时器等),控制回路中的同一个控制系统的资源(传感器数据、执行器、共享变量)但各自的计算任务每个线程有自己的TCB来记录执行状态想象一个(有完整的生产系统)

2025-11-03 18:53:00 945

原创 linux 信号

信号在产生后,并不会总是被立即处理。未决信号集(pending):记录哪些信号已经产生但尚未被处理;阻塞信号集(mask):表示进程当前屏蔽(即暂缓处理)哪些信号。当一个信号产生时,内核会立即将其在pending 集合中对应的位置为 1,然后检查mask 集合中该信号对应的位若mask 中该位为 0(未屏蔽),则内核立即执行该信号的处理动作(默认行为、忽略或用户自定义处理函数);若mask 中该位为 1(已屏蔽),则信号保持在 pending 状态,暂缓处理。

2025-10-31 20:46:20 1002

原创 Linux基础入门(1)

目录全称 / 含义作用说明关键内容 / 示例注意事项根目录整个文件系统的起点所有其他目录的父目录有且仅有一个/binbinary存放所有用户可用的基础可执行命令lscatcpechodate系统启动早期必需/sbin存放 root 专用的系统管理命令fdiskifconfigrebootiptables普通用户需sudo才能执行/bootboot存放系统启动所需文件vmlinuz(内核),initrd.imggrub/禁止随意修改或删除/devdevice设备文件目录(一切皆文件)

2025-10-14 03:11:11 955

原创 linux入门(5)

对比维度程序(Program)进程(Process)存在形式静态文件(如.exe、Linux 下的可执行文件)动态执行过程(程序加载到内存后的运行实例)核心载体存储介质(硬盘、U 盘等)计算机内存(运行时占用的内存空间)状态属性永久存在(不删除则一直保留)临时存在(从创建到消亡,生命周期有限)资源占用仅占用存储资源(大小固定)占用系统资源(CPU、内存、I/O 设备、环境变量等)对比维度并行(Parallel)并发(Concurrency)硬件依赖必须有多核 CPU、多处理器等。

2025-10-06 22:48:30 853

原创 linux入门(4)

维度strerrorperror输出方式需手动结合printf输出自动输出到 stderr灵活性高(可自定义输出格式、存储错误信息)低(仅固定格式输出)使用场景日志记录、复杂错误处理快速调试、简单错误提示代码复杂度稍高(多一步printf极低(一行搞定)fcntl核心作用是动态修改已打开文件的属性,其中最常用的是 “切换阻塞 / 非阻塞模式”。记住“获取 - 修改 - 设置” 三步流程、位操作的正确性,以及 “能改 / 不能改的标志区别”,就能轻松掌握这个高频考点。

2025-10-06 00:55:06 954

原创 linux入门(3)

静态库是一组预先编译好的目标代码(object code)的集合,它在可执行程序运行前就已经被链接并加入到最终的执行码中,成为执行程序不可分割的一部分。:节省磁盘(多个程序共享一个库文件)和内存(库代码在物理内存中只需一份),便于更新(更新库文件后,所有程序下次启动自动使用新版本)。的段(Section)合并到一起,形成可执行文件中的段(Segment)。这张地图上的地址不是真实的经纬度,而是像“人民路1号”、“中央公园”这样的人为规定的地址。土地是有限的、杂乱无章的,不同的人可能住在不同的角落。

2025-09-18 22:26:27 899

原创 鱼香ros笔记

输入ros2可以查看。

2025-09-18 03:18:14 803

原创 Linux 入门

快捷键:Tab:命令/文件名补全Ctrl+C:终止当前命令Ctrl+L:清屏(等同于clear命令)路径操作:cd /:进入根目录cd ..:返回上级目录存放系统使用的库文件(library缩写),如标准C库libc.so.2.27系统提供的用于存放丢失文件的目录,主要用于嵌入式开发场景下存储卡拔出时产生的文件碎片外设自动挂载目录,如U盘插入时会自动挂载到此目录下手动挂载目录,与media的区别在于需要手动指定挂载第三方应用程序安装目录,如Oracle数据库等进程和内存相关目录,存放程序运行时产

2025-08-27 02:51:40 562

原创 c++笔记 part1

局部变量和全局变量的名称可以相同,在某函数或语句块内部,如果局部变量名与全局变量名相同,就会屏蔽全局变量而使用局部变量,如果想使用全局变量,可以在变量名前加两个冒号(::)。函数的声明和定义可以书写在一起,也可以分开,如果书写在一起,一般放在main函数的上面,如果分开,一般在main函数的上面声明,在main函数的下面定义。把任务分工到其它的函数中,main函数只负责程序的核心流程,具体的任务由其它函数完成。不管在什么地方,都不能调用main函数,但是,在普通函数中,可以调用其它的普通函数。

2025-07-17 00:45:49 497

原创 list容器

STL list容器摘要:list是C++ STL中的双向链表序列容器,具有高效的插入/删除操作(O(1)时间复杂度),但不支持随机访问。其核心特性包括:双向链表结构(非连续存储)、多种构造函数(默认构造、拷贝构造、移动构造等)、元素操作(front/back访问)、容器管理(resize/clear)、赋值操作(operator=、assign)以及特殊操作(swap/reverse/sort/merge)。与vector相比,list在中间插入/删除性能更优,但访问效率较低。典型应用场景包括需要频繁插入

2025-07-11 23:18:51 1590

原创 基于范围的for循环

184、基于范围的for循环对于一个有范围的来说,在程序代码中指定循环的范围有时候是多余的,还可能犯错误。C++11中引入了基于范围的for循环。注意:1)迭代的范围可以是数组名、容器名、初始化列表或者可迭代的对象(支持begin()、end()、++、==)。2)数组名传入函数后,已退化成指针,不能作为容器名。3)如果容器中的元素是结构体和类,迭代器变量应该申明为引用,加const约束表示只读。4)注意迭代器失效的问题。

2025-07-11 22:55:08 287

原创 c++迭代器

/ 迭代器是访问容器中元素的通用方法// 它提供了一种统一的方式来遍历不同类型的容器核心特点提供访问容器元素的通用方法不同容器使用相同的访问方式支持基本操作:赋值(=)、解引用(*)、比较(==、!=)、递增(++)

2025-07-11 17:20:39 400

原创 vector容器

/ 指向数组开始位置T *finish_;// 指向数组结束位置(最后一个元素的下一个位置)T *end_;// 指向分配内存的结束位置// ...核心特点封装了动态数组支持随机访问(O(1)时间复杂度)在末尾插入/删除元素效率高(O(1)均摊时间复杂度)自动管理内存。

2025-07-11 16:50:29 212

原创 c++中的STL(更新ing)

C++ string容器是标准库中用于处理字符串的动态字符数组封装类。主要特点包括: 构造函数:提供7种构造方式,包括默认构造、C字符串转换、拷贝构造等,C++11新增移动构造和初始化列表构造。 容量操作:size()/length()获取长度,capacity()获取容量,resize()调整大小,reserve()预留空间。 元素访问:operator[]高效但不安全,at()安全但性能稍差,c_str()获取C风格字符串。 字符串操作: 连接:operator+=和append()系列函数 查找:fi

2025-07-11 14:55:01 1928

原创 c++学习总结

本文深入探讨了C++继承体系中的关键概念,包括:名字遮蔽机制:当派生类定义与基类同名的成员时,基类成员会被遮蔽,可通过显式域解析符访问;类作用域规则:每个类构成独立作用域,继承形成嵌套作用域,成员查找遵循派生类优先原则;多态实现:通过虚函数和基类指针/引用实现动态绑定,详细解析了虚函数表(vtable)和虚表指针(vptr)的工作原理;继承关系特性:包括公有继承权限、对象切片、基类指针/引用指向派生类对象等特殊行为;多继承问题:重点分析了菱形继承的数据冗余和二义性问题,以及虚继承的解决方案;多

2025-07-09 19:04:47 1854

原创 c++继承方式

继承方式(publicprotectedprivate)决定了,即基类成员的权限会被 “” 到继承方式指定的级别(但不会升级)。

2025-07-09 13:29:37 806

原创 c++继承方式

以下结合具体示例,分场景详解三种继承方式的作用、访问权限变化,以及。(即基类成员的权限会被 “降级” 到继承方式指定的权限,不会升级)。要理解 C++ 的继承方式,关键在于明确。基类成员在派生类中的权限 =成员(因为派生类根本不可见)成员可被派生类直接访问,而。(但不能降低,且仅对基类。

2025-07-09 00:46:55 406

原创 c++中的继承

继承是 C++ 面向对象编程的基石之一,通过 “提取共性、扩展特性” 的方式,让代码更简洁、更具层次结构。合理使用继承可以大幅提高开发效率和代码质量。

2025-07-09 00:45:16 304

原创 转换函数的基本概念

转换函数为类提供了灵活的类型转换能力,但需要谨慎使用。显式转换函数和普通成员函数是更安全的选择,可以避免隐式转换带来的二义性和意外行为。#include <iostream> // 包含头文件。// 指定缺省的命名空间。class CGirl // 超女类CGirl。// 编号。// 姓名。// 体重,单位:kg。// 默认构造函数。m_name = "西施";// string与const char*的转换string name = "西施";

2025-07-09 00:03:20 336

原创 拷贝构造函数

类名(const 类名& 已有对象名) {// 复制已有对象的成员到新对象参数必须是引用):避免传值时触发 “拷贝构造函数的无限递归调用”(传值本身需要复制对象,会再次调用拷贝构造函数)。通常加const:防止在拷贝过程中修改原对象。

2025-07-08 22:39:59 494

原创 构造函数和析构函数

构造函数和析构函数的存在,本质上是为了解决面向对象编程中—— 确保对象在创建时能正确 “初始化”(具备合法状态),在销毁时能妥善 “清理”(释放占用资源),避免人为操作的疏漏和错误。

2025-07-08 18:56:18 712

原创 c++ 学习 part2

从结构体到类举个例子大量的对象结构体会导致代码臃肿,所以衍生类的概念。定义类的语法class 类名public:成员一的数据类型 成员名一;成员二的数据类型 成员名二;成员三的数据类型 成员名三;......成员n的数据类型 成员名n;注意:类的成员可以是变量,也可以是函数。类的成员变量也叫属性。类的成员函数也叫方法/行为,类的成员函数可以定义在类的外面。用类定义一个类的变量叫创建(或实例化)一个对象。

2025-06-20 20:32:30 211

空空如也

空空如也

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

TA关注的人

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