- 博客(24)
- 资源 (4)
- 收藏
- 关注
原创 结构体内存对齐问题
当我们在C或C++中定义结构体时,编译器会对结构体的成员进行内存对齐,以提高访问速度。但这也可能导致结构体的大小增加,因为编译器可能会在成员之间插入填充字节。
2023-08-18 16:46:52
316
原创 【学习记录】守护进程
守护进程(Daemon Process)是在操作系统中运行的一种特殊类型的后台进程。一些常见的守护进程包括Web服务器(如Apache、Nginx)、数据库服务器(如MySQL、PostgreSQL)、网络时间协议守护进程(NTP)、系统日志守护进程(syslogd)等。创建守护进程的过程涉及多个步骤,包括分离从终端的连接、更改工作目录、关闭文件描述符、创建新的会话等。:守护进程在后台持续运行,不占用用户的终端。:守护进程通常会生成日志记录,用于记录其活动、错误和其他信息,以便于故障排除和监控。
2023-08-15 10:52:02
180
原创 构造函数列表初始化
构造函数初始化列表是在 C++ 构造函数中使用的一种特殊语法,用于在对象创建时对成员变量进行初始化。总之,构造函数初始化列表是一种重要的语法结构,可以用来在对象创建时对成员变量进行初始化。:使用初始化列表可以在对象创建时直接为成员变量赋值,避免了默认构造和再赋值的过程,提高了效率。:对于引用类型的成员变量,初始化列表是唯一的初始化方式,因为引用必须在创建对象时就初始化。:对于类中的常量成员变量,只能在初始化列表中进行初始化。:初始化列表开始的标志,表示即将开始初始化成员变量。是你要为成员变量初始化的值。
2023-08-13 15:05:32
206
原创 #ifndef #define #endif
在这段代码中,#ifndef xxx_H 检查是否没有定义 xxx_H,如果没有定义,那么就执行 #define xxx_H 定义它。#ifndef xxx_H:这是条件编译的开始,意思是“如果 xxx_H 还没有被定义”(通常 xxx_H 是头文件的名称,用大写字母和下划线表示),则执行下面的代码块。#ifndef xxx_H、#endif //xxx_H 和 #define xxx_H 三者之间是一种条件编译的结构,用于确保头文件只被编译一次,避免重复定义和编译错误。
2023-08-13 13:34:58
527
原创 Webserver项目学习记录(二)Linux多进程开发
在我们的日常生活中,当我们打开一个应用程序或执行一个任务时,计算机背后发生的事情远比我们看到的要复杂得多。这其中涉及到的核心概念是“进程”。
2023-08-13 10:17:58
607
1
原创 Webserver项目学习记录(一)Linux系统编程入门
GCC,全称 GNU Compiler Collection(GNU 编译器套件),是由 GNU 项目开发的一套编程语言编译器。它是自由软件,遵循 GPL(GNU 通用公共许可证)协议。GCC 最初只是一个 C 语言编译器,但现在已经能够编译 C++、Java、Ada、Objective-C、Go 等多种语言。GCC 是许多 Unix-like 系统(包括 Linux)的标准编译器,也有 Windows 版本的 GCC。
2023-08-05 17:48:26
1028
1
原创 循环队列的理解(C++)
在写力扣的《》的时候,对于答案感到了些许疑惑,以下是我对其的一些思考,记录一下以便以后翻阅。(如有错误,欢迎指正,不胜感激!
2023-07-31 22:41:18
340
1
原创 操作系统学习链接
互斥锁、自旋锁、读写锁、条件变量是常见的线程同步方式。互斥锁是最常见的线程同步方式,它是一种特殊的变量,它有 lock 和 unlock 两种状态,一旦获取,就会上锁,且只能由该线程解锁,期间,其他线程无法获取。自旋锁通过C++11的 std::atomic 类实现,它是一种比较轻量级的锁,它不会使线程进入睡眠状态,而是在等待锁的过程中循环检测锁是否被释放。7、进程间通信:PIPE、FIFO、消息队列、信号量、共享内存、socket。19、缺页置换算法:最久未使用算法、先进先出算法、最佳置换算法。
2023-03-30 23:18:22
392
原创 求数组的长度:size和sizeof的区别
sizeof是一个运算符,它用于获取一个类型或一个变量所占的内存字节数。在使用sizeof时,需要注意的是,对于数组,sizeof返回整个数组所占的内存字节数,而不是数组元素的个数。因此,对于数组获取元素个数,需要将数组总大小除以单个元素的大小。size是用于STL容器和字符串等对象获取其元素个数或长度的方法,比如vector的size()方法可以获取其元素个数,而string的size()方法可以获取其字符串长度。一般情况下,当需要获取STL容器或字符串等对象的长度或元素个数时,应该使用size方法;
2023-03-26 22:21:14
2179
原创 优先队列的实现,是队列还是堆?
从数据结构的角度来说,优先队列通常使用堆来实现,是一种特殊的队列,元素按照优先级顺序出队,而不是按照先进先出的顺序出队。与普通队列不同的是,优先队列在插入元素时,会按照一定的优先级顺序将元素插入到队列中,而在弹出元素时,总是先弹出优先级最高的元素。实际上,优先队列就是基于堆实现的,可以将堆看作一种特殊的优先队列。总之,优先队列的底层实现不一定是堆,但是堆是实现优先队列的最常用的方式,因为堆具有较好的时间复杂度和空间复杂度。优先队列的底层实现是堆(Heap),但是从功能上来看,它可以被看作一种队列。
2023-03-26 11:24:02
274
原创 【C++学习记录】特征标与重载
C++特征标是指一组用于描述编译器和库的特性的宏定义。这些宏定义通常由编译器提供,并且会根据不同的编译器和版本而有所不同。C++特征标主要用于编写跨平台代码,通过判断编译器是否支持某些特性来决定代码的行为。常见的C++特征标包括:__cplusplus:用于判断编译器是否支持C++标准的版本,例如 __cplusplus >= 201103L 表示编译器支持 C++11 标准及以上版本。STDC_HOSTED:用于判断编译器是否运行于操作系统环境中。
2023-03-15 20:23:13
385
原创 【学习记录】YOLO的Anchor聚类(自行更新cfg文件)
【学习记录】YOLO的Anchor聚类(自行更新cfg文件)文章目录一、介绍二、代码三、py文件放置位置一、介绍我们都知道yolov3针对训练数据通过k-means聚类的方法获得了合适的anchor boxes大小。这类代码网上也比较多,可以得到如以下图片的结果:可以看到,这些代码得到的boxes是乱序且非整数的,所以需要我们根据这些boxes的面积大小重新排序,并填写入cfg文件中,还是比较麻烦的,于是我修改添加了一些代码,让anchor聚类完后得到boxes能自动更新到cfg文件中,减少一些繁
2021-11-10 15:25:12
1456
原创 【学习记录】window下使用pytorch运行yolov3代码出现的报错及修改记录
【学习记录】window下使用pytorch运行yolov3代码出现的报错及修改记录(源码为:eriklindernoren/PyTorch-YOLOv3)问题1:运行get_coco_dataset.sh文件下载coco数据集解决:需要下载git,随后在get_coco_dataset.sh文件所在地方右键空白处,点击Git Bash Here,将文件拖入到弹出的框中,即可运行。过程需连网,可能还需下载wget,wget下载参考下面链接。https://blog.youkuaiyun.com/qq_409623
2021-10-31 21:51:45
536
原创 【学习笔记】pytorch 深度学习训练如何显示进度条
【学习笔记】pytorch 深度学习训练如何显示进度条通过使用tadm,实时显示训练进度,并显示当前训练集正确率以及损失效果图如下:实现代码:def train(model, criterion, optimizer, trainloader, Epoch, EPOCHS, BATCH_SIZE): model.train() loop = tqdm(enumerate(trainloader), total =len(trainloader)) running_loss =
2021-08-17 12:27:05
9522
2
基于暗通道先验和灰度世界的自动白平衡算法改进
2021-08-03
Desktop.zip
2019-06-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人