自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 资源 (1)
  • 收藏
  • 关注

原创 【C++17特性 std::scope_lock】

类scope_lock是一种符合 RAII 机制的互斥锁,可以在作用域内占有一个或多个互斥锁。在创建scope_lock对象时,会尝试给所有的互斥锁以所有权,离开作用域后,scope_lock会被析构,同时释放各个互斥锁。

2024-07-07 19:49:33 458

原创 C++11:原子交换函数compare_exchange_weak和compare_exchange_strong 初探

compare_exchange_weak和compare_exchange_strong则是著名的CAS(compare and set)

2023-11-30 16:38:36 4571

原创 CRC校验原理及实现

一个完整的数据帧通常由以下部分构成:校验位是为了保证数据在传输过程中的完整性,采用一种指定的算法对原始数据进行计算,得出的一个校验值。接收方接收到数据时,采用同样的校验算法对原始数据进行计算,如果计算结果和接收到的校验值一致,说明数据校验正确,这一帧数据可以使用,如果不一致,说明传输过程中出现了差错,这一帧数据丢弃,请求重发。常用的校验算法有奇偶校验、校验和、CRC,还有LRC、BCC等不常用的校验算法。以串口通讯中的奇校验为例,如果数据中1的个数为奇数,则奇校验位0,否则为1。

2023-10-08 15:59:02 1613 2

原创 【C++】spdlog快速入门

spdlog:一个header-only的C++日志库,十分高效且易用。

2023-10-08 10:25:23 525 1

原创 Qt 之 qInstallMessageHandler 输出详细日志并保存到文件中

一般情况下,一个大型项目会出现很多这样类似的调试信息,很不利于查找,因为我们根本不清楚输出信息所在的文件、函数、行号等信息。下面,我们来根据需要自定义消息处理程序。// 自定义消息处理程序break;break;break;break;break;// 安装消息处理程序// 打印信息这时,我们不仅可以输出调试信息,而且可以很直观、很方便的得到输出代码所在的文件、函数、行号等信息。当软件发布的时候,通常都会采用日志输出功能,方便我们后期的跟踪、查找问题。

2023-10-07 16:43:13 768 1

原创 rust更新crate.io慢并更换国内镜像源

与Linux更新库速度慢原因一致,因此建议换至国内镜像,可以大大增加下载速度,并允许使用一些特殊的命令行执行文件。下载速度顿时就增加了!

2023-05-09 23:33:29 1965

原创 策略模式 Strategy 实例与分析

策略模式C++实例与分析

2022-12-06 23:53:07 171

转载 C++基础知识查漏补缺

C++基础知识查缺补漏

2022-12-06 23:19:28 74

原创 模板模式 Template pattern 实例与分析

模板模式实例与分析

2022-12-02 01:12:17 211

转载 __declspec用法总结(Microsoft c++)

“__declspec”是Microsoft c++中专用的关键字,它配合着一些属性可以对标准C++进行扩充。这些属性有:align、allocate、deprecated、 dllexport、dllimport、 naked、noinline、noreturn、nothrow、novtable、selectany、thread、property和uuid。

2022-11-10 13:07:37 1732

原创 C/C++ 写两个线程,一个线程输出 1 - 52,另一个线程输出 A - Z,要求输出格式为: 12A,34B,56C .....

C/C++ 写两个线程,一个线程输出 1 - 52,另一个线程输出 A - Z,要求输出格式为: 12A,34B,56C .....

2022-03-12 23:39:29 2737 1

原创 FFmpeg全教程安装指南

本文将FFmpeg分为三步进行安装,汇总了一些方法与错误。第一步:安装支持库:sudo apt-get install -y autoconf automake build-essential git libass-dev libfreetype6-dev libsdl2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev pkg-con

2021-10-23 17:03:58 2621 2

原创 Linux系统编程系列(三)

进程间通信由于进程间的地址空间相对独立。进程与进程间不能像线程间通过全局变量通信,所以进程之间要交换数据必须通过内核。在内核中开辟一块缓冲区,进程A把数据从用户空间拷到内核缓冲区,进程B再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信;1、相关概念(1)进程间通信:InterProcess Communication(2)进程间通信常用的4种方式a.管道-简单b.信号-系统开销小C.共享映射区-(有无血缘关系的进程间通信都可以)d.本地套接字-稳定2、管道pipe1.管道的概

2021-07-25 21:52:14 138

原创 Linux系统编程系列(二)

进程管理进程运行后会进入执行状态:活跃active,活着alive,运行程序running program进程IDprocess ID->pid;进程若产生一个新的进程,则它称为父进程,新的进程成为子进程。进程ID会表示为 pid_t类型问题:子进程创建成功之后,代码的执行位置?父进程执行到了哪儿,子进程就从哪开始执行父子进程的执行顺序?不一定,谁抢到cpu谁执行如何区分父子进程?通过fork函数的返回值fork创建子进程fork的返回值​ >0:父进程的返回值​

2021-07-25 21:43:39 181

原创 Linux系统编程系列(一)

Linux系统编程系列(一)系统软件属于系统的底层,与内核和系统核心库直接进行交互,系统编程则是进行系统软件的关键,熟悉系统编程可以重现如shell、vim、gcc等系统软件。而作为一个高级C++/C编程人员,往往需要在底层进行多次调用,学习Linux系统编程时必要的。以下为本人在学习某机构视频时候做的笔记,参考了一些其他资料,有错误请指出,会及时修改。1、基础概念1、文件与文件系统Linux一切皆文件,2、程序与进程进程process是执行中的目标码object code:正在运行的程序;每

2021-07-25 21:17:11 80

转载 C fllush的使用与介绍

fflush()的作用是用来刷新缓冲区,fflush(stdin)刷新标准输入缓冲区,把输入缓冲区里的东西丢弃; fflush(stdout)刷新标准输出缓冲区,把输出缓冲区里的东西强制打印到标准输出设备上。fflush(stdin)不太常用,在有些编译器中是错误的用法,可以用以下方法替代:while(getchar()!=’/n’);fflush(stdout)在单进程程序中作用不大,但在多进程程序中很有用。程序的输出内容一般不会立即输出,而是在程序结束后再输出。fflush(stdout)会强制每次

2021-07-13 14:29:15 499

原创 半锤木的学习日记之 生成器与装饰器

python学习日记装饰器:不修改函数的调用方式,但是还在原来的函数基础上添加功能原则:开放封闭原则开放:对拓展是开放的封闭:对修改是封闭的基础格式举例:from functools import wraps #引入别人写好的装饰器def wrapper(f): @wraps(f) #这个装饰器不会再改原来函数的名字 def inner(*args,**kw...

2019-12-02 14:10:38 131

pybas-master.zip

天牛须算法的python版本,可以安装使用,里面有俩个demo可以运行,类似于贪心算法,具有良好的收敛作用。天牛须算法依据天牛觅食的方式来模拟,天牛在三维空间运动,而天牛须搜索需要对任意维函数都有效才可以。因而,天牛须搜索是对天牛生物行为在任意维空间的推广。

2020-04-04

空空如也

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

TA关注的人

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