自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 深入理解new和delete的原理

(1)malloc按字节开辟内存的,new开辟内存时需要指定类型,所以malloc开辟内存返回的都是void*,new直接返回类型指针。(1)对于普通的编译器内置类型,没有构造和析构可言,只涉及内存开辟释放,内存开辟释放底层就是malloc和free,所以可以混用。(2)malloc只负责开辟空间,new不仅有malloc的功能,还可以进行数据的初始化。(2)自定义类型,有析构函数,为了正确调用析构函数,再开辟数组的时候会。(1)delete:先调用析构函数,再释放内存,free只释放内存。

2024-07-20 17:01:26 393

原创 引用和指针的区别

通过引用变量修改所引用内存的值,和通过指针解引用修改指针指向内存的值,其底层指令是一摸一样的。1.右值引用专门用来引用右值类型,指令上,可以自动产生临时量,然后直接引用临时量。4.观察汇编代码发现,引用是将变量的地址存入内存中,所以需求变量必须有地址。3.定义一个引用变量,和定义一个指针变量,其。简单点判断:可以在=左边是左值,否则是右值。3.不能用一个右值引用变量,来引用一个左值。2.引用只有一级引用,没有多级引用。左值:有内存,有名字,值可以修改。,只能用左值引用来引用它。引用是一种更安全的指针。

2024-07-20 09:20:25 177

原创 C++11 容器emplace方法刨析

【代码】C++11 容器emplace方法刨析。

2024-07-19 22:44:50 226

原创 C++模板 底层实现stack 实现vector(空间配置器)

(模板代码调用之前,一定要看到模板定义的地方,这样,模板才能够进行正常的实例化,产生能够被编译器编译的代码,所以一般。注意:模板代码不能在一个文件中定义,在另外一个文件中使用。不是编译器提供的实例化,而是用户提供的实例化。模板的意义:对类型也可以进行参数化。比如下面遍历器的实例化是有问题的。

2024-07-19 18:48:44 265

原创 深入学习STL标准模板库

4.在中间进行insert或者erase,虽然时间复杂度都是O(n),但是vector都是连续空间比较方便,deque的第二维内存空间不是连续的,所以在deque中间进行元素的inset或者erase,指令肯定更多,造成元素移动的时候比vector要慢。2.前中后插入删除元素的时间复杂度:中间O(n),末尾都是O(1), 前插deque O(1) vector O(n)deque特点:动态开辟的二维数组空间,第二维是固定长度的数组空间,扩容的时候(第一维的数组进行2倍扩容)

2024-07-18 22:38:51 865

原创 零拷贝技术

可以发现,mmap+write实现的零拷贝,I/O发生了4次用户空间与内核空间的上下文切换,以及3次数据拷贝。其中3次数据拷贝中,包括了2次DMA拷贝和1次CPU拷贝。sendfile表示在两个文件描述符之间传输数据,它是在操作系统内核中操作的,避免了数据从内核缓冲区和用户缓冲区之间的拷贝操作,因此可以使用它来实现零拷贝。其中3次数据拷贝中,包括了2次DMA拷贝和1次CPU拷贝。4次上下文切换(4次用户态和内核态的切换),4次数据拷贝(两次CPU拷贝以及两次的DMA拷贝)

2024-07-18 17:49:58 810

原创 explicit函数的作用

C++ 类的隐式类型转换是指当一个类定义了适当的构造函数或转换函数时,可以在需要时自动进行类型转换,而无需显式调用转换函数或构造函数。这使得代码更具灵活性和简洁性。1.避免混淆: 隐式类型转换可能会导致代码可读性降低,因此应该避免过度使用,并确保转换行为明确且易于理解。2.显式声明: 如果你想阻止某种类型的隐式转换,可以将转换构造函数声明为explicit,或者禁用类型转换操作符。3.性能影响: 类的隐式类型转换可能会影响性能,因为它可能导致不必要的对象构造和复制。

2024-07-18 16:45:39 290

原创 阻塞和非阻塞 同步和异步

陈硕大神原话:在处理IO的时候,阻塞和非阻塞都是同步,只有使用了特殊的API才是异步IO。

2024-07-13 17:09:47 200

原创 TCP三次握手四次挥手原理

TCP/IP 协议是传输层的一个面向连接的安全可靠的能建立一个安全可靠的连接,那么第一次握手是由客户端发起,客户端会向服务端发送一个报文,在报文里面:SYN标志位置为1,表示发起新的连接。但是对于服务端而言:两次握手是不够的,因为到目前为止,服务端只知道一件事,客户端发给我的消息我能收到,但是我响应给客户端的消息,客户端能不能收到我是不知道的。所以,还需要进行第三次握手,第三次握手就是当客户端收到服务端发送的确认响应报文之后,还要继续去给服务端进行回应,也是一个ACK标志位置1的确认消息。

2024-07-13 10:29:58 682

原创 RSA算法(C++)

RSA为非对称加密算法,由一对公钥和一对私钥构成,私钥加密公钥解密,公钥加密私钥解密。如下图,D为私密的,假设传输英文字母,我们给英文字母编号A=1,B=2,C=3…两对密钥产生方法如下。

2024-07-12 21:05:23 222

原创 函数调用的堆栈过程

【代码】函数调用的堆栈过程。

2024-07-09 14:07:51 148

原创 进程间通信(IPC)

管道是一个特殊的共享文件,属于操作系统(也就不是fork()的复制对象),两个进程通过进行读写通信1.管道的读取属于一次性动作,,普通管道只允许半双工通信,若要实现两个进程双向通信,则需要两个管道2.管道则需要先通过操作系统访问文件再获得内存数据。1.只允许有血缘关系之间的进程通信2.生命周期和进程关联301.可以在两个无亲缘关系的进程间通信2.生命周期独立于进程存在,直到最后一个使用它的进程关闭它或者显示删除该文件3.需要创建文件用于管道通信。

2024-07-08 22:29:38 1038

原创 C++编译链接原理

的段,无。

2024-07-08 21:31:55 813

原创 虚拟地址空间划分

指令段,因为局部变量编译之后不会产生符号存入符号表中,只会产生汇编指令(:存放未初始化或初始化为0的数据,操作系统会将数据段.bss部分清零。),只有当运行时,才会在栈上开辟四字节空间存放局部变量的值。每一个进程的用户空间是私有的,内核空间是共享的。:程序搜索头文件和库文件默认的搜索路径。:存放局部变量的值,函数参数和返回值。加载共享库区:用来存放加载的动态库。:空闲区,程序动态分配的内存区域。或许会疑惑,局部变量为什么属于。:存放已初始化且非0的数据。:指令段,存放汇编指令。

2024-07-08 17:46:06 195

原创 主流I/O模型总结(Linux Windows)

【代码】主流I/O模型总结。

2024-07-06 22:41:14 272

原创 ubuntu常用命令

进一步解释:前台进程直接与用户交互,能够接收来自终端的输入,并且通常会阻止终端执行其他命令直到该进程终止。在 ps 输出中看到 + 符号,它标识了当前终端下处于活动交互状态的进程。对于UDP,因为它是无连接的,这一列通常为空或不显示。(进程ID/程序名称): 如果使用了 -p 参数,这一列会显示占用该端口的进程的ID以及可选的进程名称。如果很高,可能表明进程处理数据的速度慢于接收数据的速度。显示连接使用的协议,通常是 “tcp” 或 “udp”。进程的ID,是进程在系统中的唯一标识。

2024-07-06 16:08:33 553

原创 VMware虚拟机配置桥接网络

然后按下图,依次选择2处桥接模式,桥接位置3处选择你的。:VMnet0代表"桥接模式"的虚拟交换机,虚拟主机与真实主机地位完全相同,因此必须给虚拟主机配置相应的IP地址等,当然也可以使用DHCP服务器动态分配IP地址。以win10为例,点击右下角网络和Internet设置-更改适配器选项,找到连接外网的网卡(我的就是下图中2位置的),右键-属性,在WLAN属性中选中。接着选择IPv4页面,如果使用DHCP模式,直接选择DHCP模式,点击应用(如下图),设置即可完成,此时应该大功告成,可以上网啦。

2024-07-06 15:12:15 770 1

原创 Ubuntu安装redis

以下界面安装成功:当前状况:由于当前端口对应的 ip 127.0.0.1 是环回 IP,只能由当前主机上的客户端访问,跨主机就访问不了实际需求是其它主机也能够访问到,所以需要修改当前端口对应的 ip修改前出现以下界面即可以正常工作。

2024-07-06 11:28:21 305

原创 ubuntu下载Nginx

如果您是通过源码编译的方式安装Nginx,配置文件通常位于Nginx的安装目录下的conf目录中。例如,如果Nginx安装在。打开浏览器访问本机80端口,即访问:http://localhost:80。出现该界面证明nginx启动成功,可以使用nginx进行下一步的配置啦。3.测试nginx是否启动成功。,配置文件路径通常是。

2024-07-06 10:06:56 368

原创 在Linux系统中配置GitHub的SSH公钥

在Linux系统中配置GitHub的SSH公钥,可以让您无需频繁输入密码即可与GitHub仓库进行交互,提高工作效率。首先,检查您的用户目录下的.ssh文件夹中是否已有SSH密钥。如果这些文件已存在,您可以选择直接使用它们。如果需要新密钥,跳到下一步。**添加公钥即可,名称随意。默认的密钥文件可能是。

2024-07-06 09:33:46 393

原创 vscode远程连接linux(配置免密)

1.首先保证物理机和虚拟机网络可以ping通2.查看ubuntu得ip地址ifconfigIP为:192.168.52.1333.连接远程主机。

2024-07-05 23:32:00 167

原创 49. 字母异位词分组

解题思路是:使用map,使用排序好的字符串作为key,源字符串作为value,就可以实现所有字母相同的字符串对应一个key。思路:题目的意思是,将所有字母相同的字符串放到一个数组中。

2024-06-05 22:18:21 255 1

原创 vscode远程连接Ubuntu mysql服务器

注意:刚开始使用root用户死活连接不上,可能就是root用户没有权限的问题,可以尝试创建一个新的数据库用户,授予权限进行连接。

2024-05-26 21:41:55 341

原创 xlib教程

本人学习xlib的知识分享。

2024-05-16 13:22:44 371

原创 git上传项目至github(Linux)

git init创建版本库创建一个版本查看版本记录版本回退一个版本回退二个版本回退到指定版本(版本号上述commit黄色字体)其中HEAD表示当前最新版本,HEAD^表示当前版本的前一个版本,HEAD^^表示当前版本的前前个版本,也可以使用HEAD-1表示当前版本的前一个版本,HEAD-100表示当前版本的前100版本git reflog查看操作记录(前面黄色字体对应版本号):电脑中的目录,上面的git_test/:工作区的隐藏目录.git是git版本库git status:查看当前工作树的状态。

2023-11-08 19:30:39 624

原创 Linux环境下C++配置Json库

1.创建一个json文件夹,使用Xftp将压缩包导入文件夹。3.进入到 jsoncpp-src-0.5.0目录中执行。进入scons-2.1.0目录中执行。下,并为了方便使用,将其重命名为。5、拷贝出Json的静态链接库。目录下的json文件夹拷贝到。4.拷贝出Json的头文件。1、下载Jsoncpp。9 编译链接时 要加。

2023-10-24 10:21:49 491

原创 webserver项目

仅只能访问文件,访问音频视频会出错(怀疑报文文件类型有问题)不能访问目录(未完善)

2023-10-14 11:01:21 348

原创 演讲比赛流程管理系统(C++)

【代码】演讲比赛流程管理系统(C++)

2023-07-20 11:07:08 235

原创 职工管理系统

【代码】职工管理系统。

2023-07-18 09:01:57 189

原创 通讯录管理系统(C++)

【代码】通讯录管理系统(C++)

2023-07-08 13:10:40 278

原创 C++学习笔记

一维数组名用途(sizeof)二维数组名用途(sizeof)

2023-07-06 21:15:33 340

转载 卷积核(kernel)和过滤器(filter)的区别

而过滤器是是由长、宽和深度指定的,是一个三维的概念。卷积核就是由长和宽来指定的,是一个二维的概念。过滤器比卷积核高一个维度——深度。过滤器可以看做是卷积核的集合。

2023-03-25 18:58:56 220 1

原创 FullyConvolutionalNetwork-BasedEnsemble MethodforRoadExtraction FromAerialImages(读论文)

为解决航测图像中道路与背景区域不平衡的问题,本文提出了一种基于全卷积网络(FCNs)的综合策略道路提取方法。通过使用FCN,我们将道路提取视为一个语义分割问题。在网络中,由于道路和背景之间的不平衡,损失函数的权重被修改,如果道路被错误地分类为背景,将会有更大的惩罚。针对给定图像损失函数权重难以确定的问题,提出了一种基于空间一致性(SC)的集成方法。从具有不同损失函数的FCNS中获得的结果映射融合在我们提出的集成策略中,这也避免了权重的确定。

2023-03-25 16:55:53 169

原创 ResNet网络结构,BN以及迁移学习

假设我们输入的x是RGB三通道的彩色图像,那么这里的d就是输入图像的channels即d=3,,其中就代表我们的R通道所对应的特征矩阵,依此类推。对于浅层的卷积层学到了一些通用信息(角点,纹理)在其他的网络中也适用,可以将浅层网络的一些参数迁移到新的网络中去,使新的网络也拥有识别底层通用特征的能力了,新的网络拥有了这些底层通用的检测识别能力之后,就能够更加快速得去学习新的数据集的高维特征。右边结构:1×1×256×64+3×3×64×64+1×1×64×256=69632。使用残差结构解决退化问题。

2023-03-22 21:16:00 460

原创 归一化(通俗理解)

所以需要在数据处理之前进行归一化,将数据控制在一个数量级上,防止不同数量级数据影响预测。假设 体重偏差了 5斤 对健康值影响极大,但是或许现实中多五斤少五斤没有影响。假设 身高偏差 1m 对健康值相比于体重影响极小,但是现实中却严重影响健康。健康值 = 身高 × 2 + 体重 × 3。现在需要对健康进行评测。

2023-03-21 20:00:18 254

原创 U-Net网络结构(语义分割)

通常代码中会使用padding填充,就不需要中心裁剪了。

2023-03-21 19:30:00 161

原创 注意力机制

注意力机制

2023-03-17 19:41:30 273

原创 FCN网络(Fully Convolutional Networks)

FCN网络

2023-03-08 10:26:49 491

原创 转置卷积(Transposed Convolution)

转置卷积

2023-03-08 09:51:44 117

原创 Adobe illustrator使用教程

Abode illustrator学习笔记

2023-03-01 21:54:07 7004

空空如也

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

TA关注的人

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