- 博客(37)
- 收藏
- 关注
原创 Mosquitto:如何删除mosquitto.db和mosquitto.log
快速删除C盘的mosquitto.db和mosquitto.log
2025-06-24 10:31:52
247
原创 Libcpr和crow第三方库关于线程安全的分析
Libcpr和crow作为C++中常用的HTTP库,其线程安全性需结合设计实现和常见使用场景综合分析。
2025-06-20 14:02:17
482
原创 LibCpr: Windows环境下实现一个C++版本的Http客户端
Windows环境下实现一个C++版本的Http客户端程序,已运行验证代码可行。
2025-06-20 10:16:57
194
原创 C++ :异常抛出机制
5.若无匹配处理程序,调用 std::terminate() 终止程序。输出:Custom Error: Invalid age: -5。输出:Error: Division by zero!2.退出当前作用域(栈展开,调用局部对象析构函数)4.若匹配成功则执行处理代码;3.按顺序匹配 catch 块。1.在 try 块中抛出异常。
2025-06-17 20:14:54
361
原创 数据结构:二叉树
定义:满二叉树是每个节点要么是叶子节点,要么恰好有两个子节点的二叉树,且所有叶子节点都在同一层。2.完全二叉树: 最后一层允许缺失节点,但必须从左到右连续缺失(不能跳过左侧)。1.满二叉树:每一层都严格填满,无缺失节点。另欢迎关注公众号【比特层递】,一起交流进步。3.斜树:所有节点单向延伸,无分支。
2025-06-16 23:23:09
378
原创 划分子网的Ipv4地址
如果使用子网掩码 255.255.255.0(即 /24),表示有 256 个 IP 地址,网络部分是前三个八位字节(192.168.1),主机部分是最后一个八位字节。掩码是一个 32 位的二进制数,其中的 1 表示网络部分,0 表示主机部分。广播地址 是子网中所有主机地址的最高地址,通常用于向该子网内所有设备发送广播信息。每增加一个子网位,会使得可用的子网数量增加,但是每个子网的主机数会减少。子网地址 是子网中所有主机地址的最低地址,通常用来表示该子网的网络标识。为此,需借助子网掩码来计算子网。
2025-06-16 21:29:59
271
原创 使用C++创建一个常用的线程池
2.2 i 捕获当前循环中的线程索引。因为 lambda 需要在每个线程中独立工作,所以捕获 i 是必要的,以便在每个线程中能得到正确的数据库连接。std::unique_lock 相比于 std::lock_guard 提供了更多灵活性,比如能够手动解锁,适用于更复杂的场景。使用 std::unique_lock 来锁定 m_queueMutex,保证访问任务队列 m_tasks 的线程安全。1、emplace_back 是 std::vector 提供的一个方法,用来在容器的末尾添加一个新的元素。
2025-06-16 16:53:07
390
原创 C++: std::queue与std::function笔记
m_tasks 是一个 std::queue 类型的成员变量,具体来说,它是一个存储 std::function<void(std::shared_ptr)> 类型对象的队列。std::shared_ptr 是传递给任务的参数类型,这意味着每个任务都需要一个 std::shared_ptr 类型的参数。std::function<void(std::shared_ptr)> 是一个封装了返回类型为 void,并且接受 std::shared_ptr 参数的可调用对象。
2025-06-16 16:05:08
375
原创 从docker.io拉取镜像超时失败处理方法,实测可用。
2、修改daemon.json的registry-mirrors信息,原有的其他选项不用改。**需求:**从docker.io拉取官方最新镜像。3、重新加载配置文件及docker服务。1、修改docker的配置文件。5、重新拉取镜像,成功。4、 重启docker。
2025-06-16 11:03:20
379
原创 C++ 信号量
C++标准库在C++11之后提供了std::mutex(互斥锁)和std::condition_variable(条件变量)等线程同步工具,这些工具通常更加方便和安全,推荐在C++中使用。在使用操作系统提供的信号量时,可以使用POSIX线程库(pthread)或Windows线程库来创建和管理信号量。在C++中,信号量是一种用于线程同步的基本工具,用于控制对共享资源的访问。C++标准库并没有直接提供信号量,但是可以使用操作系统提供的信号量或者使用第三方库来实现。
2024-05-29 16:03:14
725
原创 windows环境bat文件常用语法小结
解释:taskkill /f /t /im %program%:这行命令用于终止指定名称的程序。其中,%0 表示当前脚本的名称(包括扩展名),而 %~dp0 表示该名称的驱动器路径。在这个命令中,%program%是一个变量,它可能包含你要搜索的关键词。/i选项表示在搜索时不区分大小写。例如,如果你想查找所有包含"chrome"关键词的任务,你可以将%program%设置为"chrome",然后运行该命令。这段代码的作用是强制终止指定名称的程序,然后输出一条消息,等待一段时间后跳转到脚本的结束位置。
2024-04-18 14:17:58
491
1
原创 debian常用的架构类型
amd64(x86-64):64位x86架构,目前是Debian最广泛使用的架构之一,适用于大多数桌面和服务器计算机。i386(x86):32位x86架构,适用于旧版的桌面和服务器计算机,也被称为IA-32。armel:ARM EABI Little-Endian架构,适用于一些较老的嵌入式设备。s390x:IBM System z架构的64位版本,适用于IBM主机和服务器。arm64:ARM 64位架构,适用于许多嵌入式设备和服务器。mips:MIPS架构,适用于某些嵌入式系统和路由器。
2024-04-03 17:49:03
969
1
原创 C++适配器
在C++中,适配器(Adapter)是一种设计模式,用于将一个类的接口转换成另一个类的接口,以使它们可以相互配合工作。(Function Adapters):函数适配器用于修改或扩展函数的行为,可以用于将普通函数转换成函数对象,或者修改函数的行为。:队列是一种先进先出(FIFO)的数据结构,它也基于其他容器(如deque或list)实现,并提供了push、pop、front、back等操作。:容器适配器是一种特殊的数据结构,它们基于其他容器实现,并提供了不同的接口和功能。
2024-03-29 14:34:07
367
1
原创 C++ 一元谓词和二元谓词的区别
一元谓词(Unary Predicate):一元谓词是指只接受一个参数的谓词。在使用一元谓词时,通常会将一个参数传递给该谓词,然后谓词会根据这个参数进行判断并返回相应的结果。二元谓词(Binary Predicate):二元谓词是指接受两个参数的谓词。在使用二元谓词时,通常会将两个参数传递给该谓词,然后谓词会根据这两个参数进行判断并返回相应的结果。例如,用于比较两个元素大小的函数对象就是二元谓词。总结:一元谓词和二元谓词都是用于描述某种条件或判断的函数对象,只是它们所接受的参数个数不同,分别为一个和两个。
2024-03-29 14:03:02
464
1
原创 C++ STL组成
容器(Containers):容器是用来存储数据的数据结构,STL提供了多种类型的容器,如vector、list、deque、set、map等。STL中的很多算法可以接受函数对象作为参数,以实现灵活的功能扩展。迭代器(Iterators):迭代器用于在容器中遍历元素,STL定义了多种迭代器类型,包括输入迭代器、输出迭代器、正向迭代器、双向迭代器和随机访问迭代器。算法(Algorithms):STL提供了丰富的算法库,包括对容器进行排序、查找、遍历等操作的算法,如sort、find、for_each等。
2024-03-29 13:47:51
227
1
原创 编译服务端C++程序常遇到的链接配置
通过添加 -lcurl 选项,编译器会在编译和链接过程中将 libcurl 库链接到最终的可执行文件中,以便程序能够使用 libcurl 提供的功能来进行网络通信。在涉及网络通信的程序中,特别是需要使用到套接字编程的程序中,需要添加 -lnsl 选项来正确链接 NSL 库,以确保程序能够正常编译和运行。-lcurl 是 GCC 编译器的一个选项,用于告诉编译器链接 libcurl 库。-lstdc++是GCC编译器的一个选项,用于告诉编译器链接 libstdc++ 库,这是GNU C++ 标准库的库名称。
2024-03-28 10:31:39
472
1
原创 centos7下安装pyinstaller后,使用时报ModuleNotFoundError: No module named ‘_ctypes‘错误(问题已实际解决)
centos7下安装pyinstaller后,使用时报ModuleNotFoundError: No module named '_ctypes'错误(问题已实际解决)
2022-09-16 11:11:37
1429
1
原创 numpy.meshgrid用法
最近在看pytorch的学习教程时,看到numpy.meshrid()这个函数。就上网搜了下。numpy提供的numpy.meshgrid()函数可以让我们快速生成坐标矩阵。使用meshgrid方法,你只需要构造一个表示x轴上的坐标的向量和一个表示y轴上的坐标的向量;然后作为参数给到meshgrid(),该函数就会返回相应维度的两个矩阵;比如,你想构造一个2行3列的矩阵网格点,那么x生成一个...
2019-08-09 11:17:36
757
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人