自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++--模版进阶

本文介绍了C++模板的进阶应用,主要包括非类型模板参数、模板特化和分离编译。非类型模板参数允许使用常量作为模板参数,类似宏定义但更灵活。模板特化分为函数模板特化和类模板特化,其中类模板特化又分为全特化和偏特化,用于处理特殊类型的情况。分离编译模式下,模板的声明和定义通常需要放在同一文件中以避免链接错误。文章通过示例代码展示了这些概念的具体应用,帮助读者更好地理解和使用C++模板的高级特性。

2025-06-11 00:22:45 428

原创 C++--stack和queue的使用及其模拟实现

设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。Java 语言非常关注设计模式,而 C++ 并没有太关注,但是一些常见的设计模式还是要学习。迭代器模式其实在前面学习stringvector和list时就已经接触过设计模式了。迭代器就是一种设计模式。迭代器模式是封装后提供统一的接口iterator在不暴露底层实现细节的情况下,使得上层能够以相同的方式来访问不同的容器。适配器模式适配器模式则是将一个类的接口转换成客户希望的另外一个接口,即根据已有的东西转换出想要的东西。

2025-06-09 20:59:57 790

原创 C++--list的使用及其模拟实现

可以看到,list sort 的效率远低于 vector sort,甚至于说,直接使用 list sort 的效率都不如先将数据拷贝到 vector 中,然后使用 vector sort,排序之后再将数据拷贝回 list 中快。至此也能明白为什么 list sort 接口使用的非常少了。**注意:**在 release 版本下测试软件或算法性能得到的结果要比在 debug 版本下得到的结果具有参考意义。

2025-06-07 21:16:40 786

原创 C++--vector的使用及其模拟实现

迭代器失效一定会导致错误,所以在平时使用迭代器的时候为了保证程序的跨平台性,统一认为迭代器失效之后,必须更新后才能再次使用。

2025-06-04 22:24:36 656

原创 C++--string的使用及其模拟实现

C++中的string类简介 C++标准库提供的string类解决了C语言字符串操作中的诸多问题,如内存管理、边界检查等,并遵循面向对象思想。string本质上是一个模板类basic_string<char>,支持多种编码方式。 VS和g++编译器对string的实现不同:VS采用固定16字节小缓冲区优化,以空间换时间;g++则使用写时拷贝技术提高效率。string类提供了丰富的接口,包括构造函数、迭代器、运算符重载等。 C++11引入的auto关键字和范围for循环简化了string的遍历操作

2025-05-30 11:06:21 1002

原创 C++--STL简介

STL(标准模板库)是C++标准库的核心部分,提供了一系列可复用的数据结构和算法框架。STL起源于惠普实验室的原始版本,随后衍生出多个版本,如P.J.版本、RW版本和SGI版本,其中SGI版本因其可移植性和高可读性被广泛采用。STL包含六大组件,极大地简化了C++编程,避免了重复造轮子,提升了开发效率。由于其重要性,STL在C++学习、面试和实际工作中都是重点考察内容,掌握STL是C++程序员的基本要求。

2025-05-20 23:18:01 287

原创 C++--模版初阶

在C++中,存在这样一个模具,通过给这个模具中填充不同材料(类型),来获得不同材料的铸件(即生成具体类型的代码)。泛型编程:编写与类型无关的通用代码,是代码复用的一种手段。模板是泛型编程的基础。函数模版类模版。

2025-05-20 23:16:53 1410

原创 C++--内存管理

C++动态内存管理和C语言动态内存管理最大的不同在于二者对自定义类型的处理:C语言 malloc/calloc/realloc 函数只负责开辟空间,free 函数只负责销毁空间。而C++在申请自定义类型的空间时,new 会调用构造函数,delete 会调用析构函数,完成对应对象的初始化和销毁。class Apublic://构造函数: _a(a)cout << "A 构造" << this << endl;//析构函数~A()cout << "A 析构" << this << endl;

2025-05-19 23:16:32 709

原创 C++--类和对象

class 为定义类的关键字,className为类的名字(由程序员自行决定)同样也是类的类型,{} 中为类的主体,注意类定义结束时后面分号不能省略。类体中的成员称为类的成员:类中的变量称为属性或成员变量;类中的函数称为方法或成员函数。//类体:由成员变量和成员函数组成 };//注意后面的分号为了区分成员变量,一般习惯上成员变量会加一个特殊标识,如成员变量前面或后面加 m 开头,注意 C++ 中这个并不是强制的,只是一些惯例,要看具体的要求。

2025-05-18 15:01:30 550

原创 LeetCode 27.移除元素

这中方法虽然简单易懂,但仍然后很多小细节需要注意。而且这种方法并不能通过leetcode的平台测试,因为其空间复杂度为ON2O(N^2)ON2,超出了时间限制不合符题意。双指针法是一种非常常见的算法技巧,特别适用于处理数组、链表或字符串等序列结构的问题,尤其是涉及到原地修改或者查找特定条件的元素对时。

2025-05-05 23:45:04 590

原创 Linux系统编程--基础指令(!!详细讲解+知识拓展)

使用特定的算法,将文件进行合并或者压缩,减少体积。实际上打包压缩是两个动作,但是可以看做是一个整体。

2025-05-05 21:48:04 1064

原创 C++--入门基础

定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{}中即为命名空间内的变量/函数/类等。命名空间中可以定义变量/函数/类等。namespace只能定义在全局,当然还可以嵌套定义。namespace后面的空间名不受限制,可以随机取,一般取项目名称作为空间名。//定义命名空间//定义变量//定义函数//定义类型(结构体)int data;}SLNode;//定义命名空间namespace N1//定义一个名为N1的命名空间//定义变量。

2025-05-02 22:58:09 1821

原创 LeetCode 189.轮转数组

以上两组代码的代码逻辑基本一致,主要是在将数据移动到新数组时的具体实现思路不同。输入: nums = [1,2,3,4,5,6,7], k = 3。输入: nums = [-1,-100,3,99], k = 2。向右轮转 1 步: [7,1,2,3,4,5,6]向右轮转 2 步: [6,7,1,2,3,4,5]向右轮转 3 步: [5,6,7,1,2,3,4]向右轮转 1 步: [99,-1,-100,3]**结果:**不通过,时间复杂度过高,为。输出: [5,6,7,1,2,3,4]

2025-04-29 13:39:28 448

原创 初阶数据结构--排序算法(全解析!!!)

希尔排序是按其设计者希尔的名字命名的,该算法由希尔1959年公布。

2025-04-23 21:34:24 1193

原创 机器视觉--Python补充知识

编程中,经常需要使用变量,来保存/表示数据。如果代码中需要表示的数据个数比较少,直接创建多个变量即可。num1 = 10num2 = 20num3 = 30......但是有的时候,代码中需要表示的数据特别多,甚至也不知道要表示多少个数据。这个时候, 就需要用到列表。列表是一种让程序员在代码中批量表示/保存数据的方式就像去超市买辣条, 如果就只是买一两根辣条,那直接拿着辣条就走了。但是如果一次买个十根八根的,这个时候用手拿就不好拿,超市老板就会给我们个袋子。这个袋子,就相当于列表。

2025-04-17 22:00:56 914

原创 初阶数据结构--二叉树OJ训练

本文内容承接上篇问文章,建议连续阅读。

2025-04-14 11:03:53 740

原创 初阶数据结构--链式二叉树

以上递归思路都是先遍历左子树在遍历右子树,采用的主要是左根右的中序遍历思想。上述代码中对于左子树和右子树的遍历,并不是一次性将根结点的左子树遍历完成再遍历右子树,而是针对每一个节点都是先遍历左子树再遍历右子树。(中序遍历的重要思想注意!!注意!!除了先序遍历、中序遍历、后序遍历外,还可以对二叉树过进行层序遍历。设二叉树的根结点所在层数为1,层序遍历就是从所在二叉树的根结点出发,首先访问第-一层的树根结点,然后从左到右访问第2层上的结点,接着是第三层的结点,以此类推,自上而下,自左至右逐层访问。

2025-04-12 15:00:06 795

原创 初阶数据结构--树

在文件系统中,树结构被广泛应用,它通过父结点和子结点之间的关关系来表示不同层级的文件和文件夹之间的关联。(一种二叉树)使用顺序结构的数组来存储,需要注意的是这里的堆和操作系统虚拟进程地址空间中的堆是两回事,一个是数据结构,一个是操作系统中管理内存的一块区域分段。在树形结构中,最常⽤的就是⼆叉树,⼀棵⼆叉树是结点的⼀个有限集合,该集合由⼀个根结点加上两棵别称为左⼦树和右⼦树的⼆叉树组成或者为空。:若一个结点含有子结点,则这个结点称为其子结点的父结点。:一个结点含有的子树的根结点称为该结点的子结点。

2025-04-05 19:29:18 933

原创 机器视觉--Python语法结构

条件语句能够表达 “如果 … 否则 …” 这样的语义, 这构成了计算机中基础的逻辑判定。条件语句也叫做分支语句如果 我认真敲代码我就很容易找到工作否则我就容易毕业就失业其中 “我认真敲代码” 称为条件。如果条件成立(条件为真), 则会出现 “我就很容易找到工作” 这个情况。如果条件不成立(条件为假), 则会出现 “我就容易毕业就失业”.当然, 同样的逻辑, 还可以反着表达。如果 我选择躺平摆烂我就容易毕业就失业否则我就很容易找到工作虽然结构变了, 但是整体表达的语义是等价的。

2025-04-04 22:06:26 807

原创 机器视觉--python基础语法

给定四个分数, 67.5, 89.0, 12.9, 32.2 , 编写代码, 求这四个分数的方差PS: 方差的计算过程: 取每一项, 减去平均值, 计算平方, 再求和, 最后除以 (项数 - 1)在这个代码中,需要先计算四个数的平均值再计算方差,所以就需要一个变量保存平均数。注意avg, total, result 均为变量.** 在 Python 中表示乘方运算. ** 2 即为求平方变量可以视为是一块能够容纳数据的空间。这个空间往往对应到 “内存” 这样的硬件设备上a = 10。

2025-04-02 22:17:19 1500 1

原创 视觉入门--Python入门

这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。

2025-04-02 03:32:02 339

原创 计算机三级网络技术大题总结

做题口决: 网络位不变,主机位全部变为 0。例题: IP 地址为: 125.175.20.7,子网掩码为: 255.224.0.0将其 IP 地址和子网掩码转换为二进制得如下:其中子网掩码为 1 对应的二进制位为网络位,子网掩码为 0 对应的位为主机位。位与主机位。可以看出 是网络位,而 是主机位。 因此此网络地址为: ,转换为十进制为: 125.160.0.0小技巧:通过观察可以看出,子网掩码为 255 转换为二进制为。因此当子网掩码为 255 时,所在对应段为网络位。 同理,子网掩码为 0 时对应的

2025-03-28 19:42:35 1123

原创 计算机三级网络技术知识汇总【11】

管理站(Manager)通过 SNMP 定义的 PDU 向代理(Agent)发出请求,而 Agent 将得到的 MIB 值通过 SNMP协议传送给 Manager。SNMP 模型的定义比较简单,并不在每层都定义有管理实体,只在 TCP/IP 协议层上进行定义。

2025-03-22 15:46:58 808

原创 计算机三级网络技术知识汇总【10】

配置 1:Pix525(config)#conduit permit tcp host 192.168.0.3 eq www any含义:配置允许任何外部主机对全局地址 192.168.0.3 的这台主机进行 HTTP 访问。fixup:配置 FIXUP 协议。fixup 命令的作用是启用、禁止、改变一个服务或协议勇敢 PIX 防火墙的端口,由 fixup 命令指定的端口是 PIX。

2025-03-21 17:20:37 1017

原创 初阶数据结构--顺序表

上文对实现了动态顺序表的增删查改,通过上述函数的编写,可以在其中找到一些共性和规律。断言部分**所以情况:**无论是实现如何功能的函数都需要接受传来的指向顺序表的指针,然而后续都需要对其进行解引用,所以首先要确保此指针不能是空指针。assert(ps);**删除数据:**因为对于一个空的没有数据的顺序表执行删除操作是没有意义的,所以也需要确保顺序表中的size的值不为0。**指定位置:**在对于在顺序表中的任意位置插入或删除数据的这种普适情况,pos指向的位置不应该包含头部和尾部。

2025-03-21 00:18:02 996

原创 STM32F407ZGT6--工程模版

按照下图顺序点击。之后和添加文件一样,找到对应文件夹的路径一路点击添加即可。接下来需要添加全局宏定义标识符,仍是在该页面底下,在。

2025-03-15 17:02:32 1205

原创 计算机三级网络技术知识汇总【9】

① 在 IE 浏览器地址栏中输入 FTP 服务器的 IP 地址,即在浏览器地址栏中输入“ftp://IP 地址/” ,即会打开【登录身份】对话框,在此对话框中输入用户名和密码,也可以选 择匿名登录,就可以登录到 FTP 服务器上;组:为简化账户的权限管理,可以将大量的、具有相同访问权限的账户集中到一个组内。② 动态映射,建立一套域名解析系统(DNS),只在专门的 DNS 服务器上配置主机到 IP 地址的映射,网络上 需要使用主机名通信的设备,首先需要到 DNS 服务器查询主机所对应的 IP 地址。

2025-03-13 20:53:26 1092

原创 初阶数据结构--复杂度

此题仍然因为排序存在多种情况,所以需要分情况讨论写出不同情况的时间复杂度。

2025-03-12 21:32:38 863

原创 计算机三级网络技术知识点汇总【8】

Cisco Aironet 1100 是无线局域网收发器的一种,主要是用于独立无线网络的中心点或。

2025-03-10 19:19:46 875

原创 计算机三级网络技术知识点汇总【7】

路由器是工作在网络层的设备,负责将数据分组从源端主机经最佳路径传送到目的端主机,实现在网络层的互联。路由器工作在 TCP/IP 网络模型的网络层,对应于 OSI 网络参考模型的第三层,因此,路由器也常称为网络层互 联设备。路由器是互联网的主要节点设备。路由器通过路由决定数据的转发,转发策略称为路由选择(routing),这也 是路由器名称的由来(router,转发者)。

2025-03-08 11:05:28 1150

原创 C语言--预处理详解

1000register//为 register这个关键字,创建一个简短的名字for;;//用更形象的符号来替换一种实现break;case//在写case语句的时候自动把 break写上。// 如果定义的 stuff过⻓,可以分成⼏⾏写,除了最后⼀⾏外,每⾏的后⾯都加⼀个反斜杠(续⾏符)。printf# define MAX 1000 # define reg register //为 register这个关键字,创建一个简短的名字 # define do_forever for(

2025-03-02 22:53:20 834

原创 C语言--编译和链接

经过预处理后的。

2025-02-27 22:28:25 910

原创 C语言--文件操作

磁盘(硬盘)上的文件是文件。但是在程序设计中,我们一般谈的文件有两种:程序文件、数据文件(从文件功能的角度来分类的)。函数名功能适用于fgetc字符输入函数(读字符)所有输入流fputc字符输出函数(写字符)所有输出流fgets文本行输入函数(读字符串)所有输入流fputs文本行输出函数(写字符串)所有输出流fscanf格式化输入函数所有输入流fprintf格式化输出函数所有输出流fread二进制输入文件输入流fwrite二进制输出文件输出流。

2025-02-25 23:01:51 897

原创 计算机三级网络技术知识汇总【6】

局域网交换机是一种识别,完成转发数据帧功能的一种网络连接设备。工作在数据链路层,。交换机作为汇聚中心,能将多台数据终端设备连接在一起,构成。

2025-02-23 21:52:49 941

原创 计算机三级网络技术知识汇总【5】

局域网是一种分布在较小距离范围,连接各种设备并为这些设备间的信息交换提供途径的计算机网络。(1)传统共享介质局域网(2)交换式局域网(3)虚拟局域网技术分类:基于、基于划分、基于、基于 IP 广播组划分。

2025-02-21 10:41:38 1186

原创 计算机三级网络技术知识汇总【4】

路由器(Router)是连接两个或多个网络的硬件设备,在网络间起网关的作用,是读取每一个数据包中的地址然后决定如何传送的专用智能性的网络设备。

2025-02-20 13:11:44 1293

原创 计算机三级网络技术知识汇总【3】

是。

2025-02-19 15:33:14 999

原创 计算机三级网络技术知识汇总【2】

按所支持的技术类型:可以将交换机分为10Mbit/s Ethernet交换机**、**Fast Ethernet交换机速率与1Gbit/s的GE交换机。交换机的主要技术指标包括:背板带宽、全双工端口总带宽、帧转发速率、交换方式、延时、模块式或固定端口配置、支持VLAN能力等。集群技术是向一组独立的计算机提供高速通信线路,组成一个共享数据存储空间的服务器系统,提高了系统的数据处理能力。按应用规模:可以将交换机分为:企业级交换机**、**部门级交换机与工作组级交换机。路由器的包转发能力与路由器的。

2025-02-19 09:30:11 925

原创 计算机三级网络技术知识汇总【1】

"的问题,主要是是用来连接用户的。

2025-02-19 09:25:58 1126

原创 C语言--动态内存管理

栈区(stack):在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。栈区主要存放运行函数而分配的局部变量、函数参数、返回数据、返回地址等。(局部变量、形式参数···)​ 《函数栈帧的创建和销毁》堆区(heap):一般由程序员分配释放,若程序员不释放,程序结束时可能由OS(操作系统)回收。分配方式类似于链表。(动态申请的内存)数据段(静态区):(static)存放全局变量、静态数据。

2025-02-13 21:13:15 650

空空如也

空空如也

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

TA关注的人

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