自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 开源AI人像调整工具FacePoke本地部署结合cpolar发布公网使用

本篇文章介绍如何在Windows电脑与Ubuntu系统本地安装并使用AI人像调整工具FacePoke编辑面部表情,结合cpolar内网穿透工具还能轻松实现公网环境远程访问,无需公网IP,也不用设置路由器那么麻烦。FacePoke是一款创新工具,允许用户通过直观的拖放界面操纵面部特征和表情。基于强大的LivePortrait框架构建,FacePoke在数字艺术家、内容创作者和AI爱好者中迅速获得关注,特别是在X(前身为Twitter)等社交媒体平台上。

2025-04-01 14:34:59 614 25

原创 Linux系统Docker部署开源在线协作笔记Trilium Notes与远程访问详细教程

今天和大家分享一款在G站获得了26K+的强大的开源在线协作笔记软件,Trilium Notes的中文版如何在Linux环境使用docker本地部署,并结合cpolar内网穿透工具配置公网地址,轻松实现远程在线协作的详细教程。Trilium Notes是一个层次化的笔记应用程序,专注于建立大型个人知识库。笔记可以排列成任意深的树。单个笔记可以放在树中的多个位置(请参阅克隆)丰富的所见即所得笔记编辑功能,包括带有 Markdown 自动格式化功能的表格,图像和数学。

2024-11-23 15:51:05 3728 44

原创 Windows本地部署开源趣味画风白板手绘工具Excalidraw并实现远程操作

本文主要介绍如何在Windows系统电脑端使用这款超好用的白板手绘工具Excalidraw,并结合cpolar内网穿透轻松实现使用客户端异地远程访问本地服务端使用白板手绘工具。在信息技术高度发达的今天,人们却开始热衷起了复古模式,比如面对琳琅满目、色彩艳丽的各种图表图形无感,却喜欢原始手绘风格的图。但是让人拿起笔去绘图已经不再可能,那么借助软件来实现就变得很有意义。今天给大家推荐的就是一个简易手绘神器——Excalidraw。

2024-11-18 20:19:26 2002 39

原创 【Linux修行路】网络套接字编程——UDP

本篇文章接上一篇。

2024-09-16 14:47:18 2189 17

原创 【C++从练气到飞升】26--C++11——lambda

🎈✨🎉🎉。

2024-09-16 14:46:27 1089 4

原创 【C++从练气到飞升】25--C++11:右值引用 | 移动语义 | 完美转发

左值是一个表示数据的表达式(如变量名或解引用的指针),我们可以获取它的地址,一般可以对它赋值(有一些不能复制的也是左值,比如被 const 修饰的变量),左值可以出现在赋值符号的左边,右值不能出现在赋值符号的左边。定义时 const 修饰符后的左值,不能给它赋值,但是可以取它的地址。左值引用就是给左值的引用,给左值取别名。//左值引用int main()// 以下的p、b、c、*p都是左值int b = 1;// 以下几个是对上面左值的左值引用return 0;小Tips。

2024-09-15 17:49:52 1255 3

原创 【Linux修行路】初识网络套接字编程

今天的分享到这里就结束啦!如果觉得文章还不错的话,可以三连支持一下,您的支持就是我前进的动力!

2024-09-15 17:48:58 1269 4

原创 【Linux修行路】信号的捕捉处理

用户态和内核态的产生,就是为了去判断,当前是否有权限去执行内核空间的代码,处于用户态是无法执行操作系统中的代码,只有处在内核态才能去执行操作系统中的代码。

2024-09-13 09:50:12 1369 2

原创 【Linux修行路】信号的发送与保存

今天的分享到这里就结束啦!如果觉得文章还不错的话,可以三连支持一下,您的支持就是我前进的动力!

2024-09-12 20:52:40 790 3

原创 【C++从练气到飞升】24--C++11:列表初始化 | 声明 | STL的升级

在 2003 年 C++ 标准委员会曾经提交了一份技术勘误表(简称 TC1),使得 C++03 这个名字已经取代了 C++98,成为 C++11 之前的最新 C++ 标准名称,不过由于 C++03(TC1)主要是对 C++98 标准中的漏洞进行修复,语言的核心部分则没有改动,因此人们习惯性的把两个标准合并称为 C++98/03 标准。从 C++0x 到 C++11,C++ 标准十年磨一剑,第二个真正意义上的标准姗姗来迟。

2024-09-12 20:43:20 1427

原创 【Linux修行路】信号的产生

程序中出现的所有异常,最终一定会转化成硬件错误,操作系统能够识别这种硬件错误,最终给进程发送对应的信号。

2024-09-11 21:09:32 1098 2

原创 【Linux修行路】初识信号

当进程收到。

2024-09-11 21:09:20 924

原创 【Linux修行路】线程池、线程安全的单例模式、读写者问题

单例模式是一种“经典的,常用的“

2024-09-10 14:00:16 1170 3

原创 【C++从练气到飞升】23--内联函数、auto、范围for、nullptr

以。

2024-09-10 13:59:52 858

原创 【Linux修行路】基于信号量和环形队列的生产消费者模型

今天的分享到这里就结束啦!如果觉得文章还不错的话,可以三连支持一下,您的支持就是我前进的动力!

2024-09-09 16:25:36 761

原创 【Linux修行路】基于阻塞队列的生产消费者模型

3 种关系;2 种角色;1 个交易场所。该模型的优点是支持忙闲不均,将生产和消费进行解藕。

2024-09-08 08:31:45 813 4

原创 【C++从练气到飞升】22---C++中的异常

实际使用中,很多公司都会自定义自己的异常体系进行规范的异常管理,因为一个项目中如果大家随意抛异常,那么外层的调用者基本就没办法玩了,所以实际中都会定义一套继承的规范体系,这样大家抛出的都是继承自父类的派生类对象,捕获一个基类就可以了。// 服务器开发中通常使用的异常继承体系public:, _id(id){}protected:int _id;

2024-09-08 08:31:15 794

原创 【C++从练气到飞升】21---再谈哈希算法:位图 | 布隆过滤器 | 哈希切分

🎈✨🎉🎉。

2024-09-07 09:16:11 847 7

原创 【Linux修行路】线程同步——条件变量

在某些互斥场景下,可能会引发线程的饥饿问题,为了避免饥饿问题,

2024-09-07 09:15:59 1196

原创 【Linux修行路】线程安全和死锁

今天的分享到这里就结束啦!如果觉得文章还不错的话,可以三连支持一下,您的支持就是我前进的动力!

2024-09-06 15:26:53 1576 4

原创 【C++从练气到飞升】20---RB树

/红黑树的结点:_kv(kv){}//结点中存的值//结点的左孩子//结点的右孩子//结点的父亲Color _col;//结点的颜色小Tips:新节点默认颜色是RED。这是因为,如果新插入结点的颜色是BLACK,那意味着当前路径上新增了一个黑色结点,为了保证二叉树的第四条性质,我们要对这颗红黑树其他的所有路径进行检查,可见新插入结点如果默认是BLACK,会存在着牵一发而动全身的影响。而让新插入结点默认是RED则不会出现这样的结果。假如新插入结点的parent恰好是BLACK。

2024-09-06 15:21:38 1386

原创 【Linux修行路】多线程——互斥量

今天的分享到这里就结束啦!如果觉得文章还不错的话,可以三连支持一下,您的支持就是我前进的动力!

2024-09-04 15:18:47 855

原创 【C++从练气到飞升】19---哈希:哈希冲突 | 哈希函数 | 闭散列 | 开散列

unordered_map 是存储 <key,value>键值对的关联式容器,其允许通过 key 快速的索引到与其对应的 value。在 unordered_map 中,键值通常用于唯一的标识元素,而映射值是一个对象,其内容与此键值关联。键和映射值的类型可能不同。在内部,unordered_map 没有对 <key,value> 按照任何特定的顺序排序,为了能在常数范围内找到 key 所对应的 value,unordered_map 将相同哈希值的键值放在相同的桶中。

2024-09-03 16:41:32 1253 3

原创 【Linux修行路】初识线程——线程控制

线程是进程内的一个执行分支,线程的执行粒度,要比进程细。

2024-09-03 16:40:56 1216

原创 【Linux修行路】实现一个简单的日志代码

目录⛳️推荐一、可变参数的使用二、Log2.1 日志打印2.1.1 时间获取2.1.2 日志分块打印2.2 打印模式选择2.3 Log 使用样例2.4 Log 完整源码 本质上就是一个 类型, 的作用就是让指针 指向函数栈帧中第一个非可变形参。因为函数的实参是按照从右向左的顺序进行压栈的,因此只要知道了第一个非可变形参的位置,就可以找到第一个可变参数的位置,进而去解析所有的可变参数。这就要求:可变参数的左边必须要有一个具体的参数。 是根据第二个参数所确定的类型来提取可变参数, 是将 置空。日志一

2024-09-02 17:56:58 623

原创 【Linux修行路】进程通信——消息队列、信号量

二元信号量主要用于实现对临界资源的互斥访问。

2024-09-01 10:20:10 1367 6

原创 【C++从练气到飞升】18---二叉搜索树之AVL树

在上一篇文章中对 set、multiset、map、multimap 进行了简单的介绍,在其文档介绍中发现,这几个容器都有一个共同点:其底层都是借助二叉搜索树来实现的。但是二叉搜索树有其自身的缺陷,假如往树中插入的元素有序或者接近有序,二叉搜索树就会退化成为单支树,时间复杂度会退化成O(N),因此 set、map 等关联式容器的底层结构是对二叉树进行了平衡处理,即采用平衡树来实现。那么今天就让我们对 set 和 map 的底层结构一探究竟。:_kv(kv),_bf(0){}//存储key和value。

2024-09-01 10:11:41 1037

原创 【C++从练气到飞升】17---set和map

在前面,已经向大家介绍了STL中的部分容器,比如:vector、list、deque、forward_list(C++11中引入)等,这些容器统称为序列式容器,因为其底层为线性序列的数据结构,里面存储的是元素本身。那么什么是关联式容器呢?它与序列式容器有什么区别?关联式容器也是用来存储数据的,与序列式容器不同的是,其里面存储的是 <key,value> 结构的键值对,在数据检索时比序列式容器效率更高。set 是按照一定次序存储元素的容器。

2024-08-31 12:13:24 1420 3

原创 【Linux修行路】进程通信——共享内存

今天的分享到这里就结束啦!如果觉得文章还不错的话,可以三连支持一下,您的支持就是我前进的动力!

2024-08-31 11:59:48 1195

原创 【C++从练气到飞升】16---二叉搜索树

🎈✨🎉🎉。

2024-08-26 22:22:49 963 13

原创 【Linux修行路】进程通信——管道

是两个或多个进程实现数据层面的交互,因为进程之间是存在独立性的,所以。

2024-08-25 18:30:45 880 5

原创 【C++从练气到飞升】15---深入浅出多态

多态是在不同继承关系的类对象,去调用同一个函数,产生了不同的行为。比如 Student 继承了 Person。Person 对象买票全价,Student 对象买票半价。因此多态的前提是要在继承体系中,在继承中要构成多态还有两个条件:必须通过基类的指针或者引用调用虚函数被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写public:virtual void BuyTicket() const//虚函数cout << "买全价票" << endl;

2024-08-24 10:52:47 1345 4

原创 【Linux修行路】动静态库详解

今天的分享到这里就结束啦!如果觉得文章还不错的话,可以三连支持一下,您的支持就是我前进的动力!

2024-08-23 18:05:12 936 2

原创 如何在VMware ESXI中创建Linux虚拟机并实现异地SSH远程访问

本篇文章讲解如何在VMware ESXI中创建Linux虚拟机,并结合 Cpolar内网穿透实现随时随地通过SSH远程访问创建后的虚拟机。VMware Workstation它是一款专业的虚拟机软件,可以在一台物理机上运行多个操作系统,支持Windows、Linux等操作系统,可以模拟多台虚拟机,支持网络虚拟化,可以模拟多台虚拟机之间的网络连接、文件共享、资源共享等。

2024-08-22 17:24:04 1809 50

原创 【Linux修行路】文件中的数据是如何被写进磁盘的?

Linux 中,我们的每一个进程,打开的每一个文件都要有自己的。

2024-08-22 15:57:53 1074 2

原创 【Linux修行路】文件系统——inode与软硬链接

在之前的。

2024-08-21 23:17:14 973 2

原创 【C++从练气到飞升】14---深入浅出继承

继承机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称为派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,继承是类设计的复用。public:protected://姓名//年龄protected:int _stuid;//学号protected:int _jobid;//工号int main()Student s;Teacher t;

2024-08-21 22:02:27 1584 1

原创 【Linux修行路】文件系统之缓冲区

使用 C 系统调用接口向文件中写入,写入的内容先被存储在用户缓冲区中,在合适的时候(遇到。

2024-08-20 16:03:22 1027 4

原创 【C++从练气到飞升】13---优先级队列的使用与底层实现

优先级队列是一种容器适配器,根据严格的弱排序标准,它的第一个元素总是它所包含的元素中最大的。此上下文类似于堆,在堆中可以随时插入元素,并且只能检索最大堆元素(优先级队列中位于顶部的元素)。优先级队列被实现为容器适配器,容器适配器即将特定容器类封装作为其底层容器类,queue 提供一组特定的成员函数来访问其元素。元素从特定容器的“尾部”弹出,其称为优先级队列的顶部。底层容器可以是任何标准容器类模板,也可以是其他特定设计的容器类。

2024-08-19 18:11:10 912

原创 【Linux修行路】基础I/O——重定向的实现原理

重定向的本质是对数组下标里面的内容进行修改。

2024-08-18 21:24:55 1497 5

空空如也

空空如也

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

TA关注的人

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