在 C++ STL 中包含多种不同的字符转换方式,主要分为继承自 C 风格函数式转换和 C++ 刻面对象。 本地环境和刻面 本地环境是一系列刻面的集合,描述了本地字符的编码,刻面描述了各种文本处理的方案。 例如在默认的 "C" 本地环境中,本地窄多字节编码指的是 ASCII 码,而在 "Chinese (Simplified)_China.936" 本地环境中,本地窄多字节编码指的是 GBK 码。在 "en_US.UTF-8" 本地环境

Read More

NOIP有多重要呢?都说信奥赛能让孩子升清北,而NOIP就是让孩子成功的关键一环! 什么是NOIP NOIP,全国青少年信息学奥林匹克联赛(National Olympiad in Informatics in Provinces),是国内青少年信息学的省级比赛。 NOIP 比赛奖项分为一二三等奖,通常被大家称作“省一”、“省二”、“省三”奖项,只要取得奖项就可以报名综合评价的高校,通过降分的形式进入心仪的大学。 NOIP作为联赛,是信奥赛四个阶段中承上启下的重要一环。 省级考试CSP-J/S

Read More

这里使用的 CPU 是 I9-9900K ,显卡是 2080Ti,宿主系统和虚拟机系统是 Debian GNU/Linux 12 。 首先要确认主板支持 VT-d 功能,并在 BIOS 中开启。 启动 IOMMU IOMMU 是 Intel VT-d 和 AMD-Vi 的通用名称。 在宿主系统中启用 IOMMU 很简单,就是给 Linux 内核一个额外的启动参数。 可以直接修改 /etc/default/grub 中的 GRUB_CMDLINE_LINUX_DEFAULT 项。 GRUB_CMD

Read More

中所周知,C++ 中的 struct 来源于 C 语言历史遗留,除了默认作用域为 public 外,与 class 并无区别,理论上可以混用。我们这里通过标准库,以及 Unreal 等工程实践,对 struct 和 class 关键字的选择进行一个总结。 如果类型包含非 public 成员变量,应当选择 class 。 如果类型包含 virtual 函数,应当选择 class 。 如果类型可以 聚合初始化 ,应当考虑 struct 。 如果类型的构造析构以及赋值函数为 = default; 实现

Read More

本文完全由 ChatGPT 生成。 std::function 和 std::any 采用构造新对象并交换的实现方式,也有一些其他的优点和好处。例如,这种实现方式可以避免赋值运算符(operator=)抛出异常的情况,从而保证了赋值操作的异常安全性。 例如,如果 std::function 和 std::any 采用直接调用赋值操作的方式实现赋值,那么在赋值操作中如果抛出了异常,就可能导致对象的状态发生改变,从而导致程序的不正常终止。而采用构造新对象并交换的实现方式,可以避免赋值操作中抛出异常的

Read More

最近折腾 iSCSI 发现想断开一个 iSCSI 连接似乎并不是一件容易的事情。正常断开可能会遇到类似正在被使用中的提示,如果强行断开适配器, iSCSI 启动器会卡好久。同时如果使用任务管理器强行结束 iSCSI 启动器,再次打开后会发现虽然 iSCSI 目标不见了,但是重启电脑又会再次试图自动连接,薛定谔的 iSCSI 目标。通过谷歌发现 我不是一个人 ,网上有好多人遇到了该问题。 目前已知的可行操作方案步骤如下。 Iscsi Initiator -> Favorite Targets

Read More

首先,在 cppreference 上对于这部分的描述节选为。 声明于块作用域且带有 static 或 thread_local 说明符的变量拥有静态或线程存储期,但在控制首次经过其声明时才会被初始化。在其后所有的调用中,声明均被跳过。 如果初始化抛出异常,则不认为变量被初始化,且控制下次经过该声明时将再次尝试初始化。 如果初始化递归地进入正在初始化的变量的块,则行为未定义。 函数内部的静态局部变量的初始化是在函数第一次调用时执行,在之后的调用中不会对其初始化。 在多线程环境下,仍能够保证静态局

Read More

Markdown 语法 参考文档 参考文档 这一节介绍了你在使用 Markdown 语法写作时需要知道的概念。 部分语法限制在 Markdown Extra 中被更改,别忘了查看下方的 Markdown Extra 部分。 概述 哲学 Markdown 的目的是在可行的情况下尽可能地易于阅读和写作。 然而,可读性被强调在所有其他方面之上。一个 Markdown 格式的文档应该是可以作为纯文本发布的,而不像被标记过的标签或格式化说明。虽然 Markdown 的语法受到了几个现有的文本到 HTML

Read More

这里使用的群晖型号为 DS418Play ,实测下来 PPPoE NET4 模式下网速只能达到 100Mbps ~ 300Mbps ,所以在这里特别说明一下,软路由也是需要性能的!千万不要变成作者一样的小丑。 网络设备结构图 下面分别是在使用软路由前和使用软路由后的网络设备结构图。 graph TD LT{{联通 1Gbps}} — 1Gbps — C[路由器] DX{{电信 300Mbps}} — 1Gbps — A[路由器] YD{{移动 4G}} — 4G — B[路由器

Read More

众所周知 Linux 汇总执行命令可以通过如下格式来将结果输出到文件中。 [命令] >> [文件名] 2>&1 其中 > 表示输出到, >> 表示追加到。 在 Shell 脚本中,默认情况下,总是有三个文件处于打开状态,标准输入、标准输出、标准错误,它们分别对应的文件描述符是 0,1,2 ,还有一个特殊文件是 /dev/null ,所有传给它的东西它都丢弃掉。 > 默认为标准输出重定向,与 1> 相同。 2>&1 意思是把 标

Read More

更改档案拥有者 命令 : chown [-cfhvR] [–help] [–version] user[:group] file… 功能 : 更改文件或者文件夹的拥有者 参数格式 : user : 新的档案拥有者的使用者 IDgroup : 新的档案拥有者的使用者群体(group) -c : 若该档案拥有者确实已经更改,才显示其更改动作 -f : 若该档案拥有者无法被更改也不要显示错误讯息 -h : 只对于连结(link)进行变更,而非该 link 真正指向的

Read More

吼吼吼,随便记记,支持小红,两个月不学会TTS不成仁 深度学习 神经网络算法通过向前传播与反向传播构成#1 先通过向前传播计算出预测结果和损失 再通过反向传播计算出损失函数关于每一个函数(w,b)的偏导数,并对这些参数进行梯度下降。 然后用新一轮的向前传播计算,反复训练使得预测越来越精准。 特征向量 激活函数 sigmoid(z)函数,用于将数据映射在0,1之间,若不使用激活函数,AI的智力将不会提升。 若是没有激活函数套在训练出的函数上,神经网络只能运算线性函数,所以无法解决复杂问题 sigm

Read More

参考文章 格式 <type>(<scope>): <subject> type 类型 feat – 功能 fix/to – 修复 fix – 产生 diff 并完全修复此 bug 适合于一次提交直接修复问题 to – 只产生 diff 不完全修复此 bug 适合于多次提交 最终修复问题提交时使用 fix docs – 文档 指不涉及代码文件的 如 .md 等文件的更新 style – 格式

Read More

函数签名 参考文档:new – delete 即使不包含 标准库 头文件,版本 可替换分配函数 与 可替换解分配函数 也会在每个翻译单元隐式声明。版本 可替换分配函数 与 可替换解分配函数 可以替换:在程序任意位置定义并在任意源文件的用户提供的拥有相同签名的非成员函数都会替换默认版本。它的声明不需要可见。 这意味着我们在替换全局 new/delete 函数时,无需在 .h 中声明,只需要在 .cpp 中定义他们。 对于某个可以替换的函数,如果程序中提供了它的多个替换,或它有带 inl

Read More

进入终端 docker exec -it [容器 ID] [解释器] 一般情况下 解释器 为 bash ,如果出现报错可尝试 sh 、 /bin/bash 、 /bin/sh 或 /bin/csh 。 复制文件 docker cp [容器 ID]:[路径] [容器 ID]:[路径] 如果在不写 容器 ID 则表示目标为宿主机。 查看镜像 docker images 制作镜像 docker commit -p [容器 ID] [快照名] 保存镜像 docker save -o [路径] [快照名]

Read More

问题 众所周知 UE 的 HTML5 平台默认显示如下。 这存在如下几个问题。 Canvas 只在中间显示。 下面有多余的按钮。 解决 将 Canvas 设置为自适应分辨率。 将 Project Settings > Platforms > HTML5 > Canvas Scaling Mode 设置为 Stretch 。 将 Canvas Wrapper 设置为自适应分辨率。 修改 .css 文件中如下一段。 .wrapper { position: relative; ma

Read More

虚幻引擎打包时,将在根目录中创建 BootstrapPackagedGame 启动 EXE 文件,并在 Binaries/Win64 中放置真正的 UE4 游戏 EXE 文件。 它通过以下过程创建: 将 引擎/Binaries/[平台]/BootstrapPackagedGame-[平台]-Shipping.exe 文件复制到根目录 更新 Build/Windows/Application.ico 图标 更新要执行的游戏 EXE 文件相对路径参数 更新游戏的基本参数 BootstrapPacka

Read More

众所周知,UE 没有提供优先队列这一常用容器。 但是在 TArray 中有一些堆函数,可以实现优先队列的操作。 这里提供一个简单封装,其中 Priority 值越小优先级越高。 template<typename ElementType, typename ArrayAllocator = FDefaultAllocator> class TRFurPriorityQueue { public: FORCEINLINE TRFurPriorityQueue() = default;

Read More

国内原因 Github连接极其卡顿 虚拟机重复安装五六次还未成功。今早终于成功,有感写下这篇教程 环境:Debian 10 设备:华为ECS 2核8G 50M 流量计费 VNC控制台安装 T-Pot 项目链接 换源 Linux一键换源 bash <(curl -sSL https://gitee.com/SuperManito/LinuxMirrors/raw/main/ChangeMirrors.sh) apt upgrade 安装依赖包 直接从 install.sh 提取的: 如果失败

Read More

加锁的原则 规则10.1 多线程 进程并行访问共享资源时 一定要加锁保护 共享资源包括全局变量,静态变量,共享内存,文件等。 建议封装像智能指针一样的对象对锁进行管理,比如我们就封装了一个 auto_lock ,在构造时申请锁,析构中释放锁,保证不会忘记解锁。 规则10.2 锁的职责单一 每个锁只锁一个唯一共享资源,这样,才能保证锁应用的单一,也能更好的确保加锁的范围尽 量小。对于共享全局资源,应该根据实际需要,每类或每个资源,有一把锁。这样,这把锁只锁对这个资源访问的代码,通常这样的代码都会是

Read More

一键跳转至题目 题目描述 机器上有 $n$ 个需要处理的任务,它们构成了一个序列。这些任务被标号为 $1$ 到 $n$,因此序列的排列为 $1 , 2 , 3 \cdots n$。这 $n$ 个任务被分成若干批,每批包含相邻的若干任务。从时刻 $0$ 开始,这些任务被分批加工,第 ii 个任务单独完成所需的时间是 $T_i$ 。在每批任务开始前,机器需要启动时间 $s$,而完成这批任务所需的时间是各个任务需要时间的总和。 注意,同一批任务将在同一时刻完成。 每个任务的费用是它的完成时刻乘以一个费

Read More

本文用来水暑假的研究性学习报告 摘要 本文给出了一种基于 HFish 的网络威胁捕捉与诱骗系统的简单搭建模式,并通过此系统捕捉了当今互联网上的部分网络攻击,通过这些数据进行简单的整理分析,透漏出网络中的潜在威胁。 关键词 网络安全 黑客攻击 网络攻防 密码破译 研究背景 作为一个小型个人网站的站主,可能并不会感觉到自己的网站被扫描与攻击,但实际上,互联网中有不少潜在的威胁。网站在明处,潜在威胁在暗处,并不容易对潜在威胁做定性定量分析,所以就需要威胁捕捉与诱骗系统通过模仿真实网站的行为,捕捉潜在的

Read More

引擎: UE4.26.2 构建版本 事情的起因是写体素构建器的时候,想生成个球,就想到抄材质的 SphereMask 节点。 这里以 SphereMask 节点为例,分析材质蓝图节点的定义。 UMaterialExpression 材质节点的 C++ 父类为 UMaterialExpression ,定义在 MaterialExpression.h 头文件中,所有原生材质节点均为此类的子类,此类主要成员如下。 virtual int32 Compile(class FMaterialCompil

Read More

这是 2021年山大未来科学营(夏季)- 人工智能与发明创造未来科学营 的作业 所以看看就行 基本信息 名称:远程智能房间巡逻警报机器人 解决家里/房间长期无人,但是有设备运行或其他需求,需要远程监控。可以方便远程监控家中环境,监控设备的运行状态,并且具有良好的机动性和灵活性,可以适应不同的房间环境。 硬件连接图 graph LR 摄像头 — 树莓派 超声传感器 — 扩展板 5路组件 — 扩展板 树莓派 — 扩展板 扩展板 — 电机驱动板 扩展板 — 测速左 扩展板 —

Read More

Establish Battlefield Control, Stand By — 战场控制建立,请等待。 Battle Control Online — 作战控制连线。 Incoming Transmission — 信号输入。 New Objective Received — 收到新的任务目标。 Objective Complete — 任务目标完成。 Mission Accomplished — 任务完成。 Missi

Read More

CornerCoordOffset[8] – 表示顶点索引到顶点空间位置的映射,如 CornerCoordOffset[0] = (0,0,0) 表示 顶点-0 的位置是 (0,0,0) 。 Triangulation[256][5][3] – 表示三角形拆分,可以通过顶点状态(通过位掩码)拆分三角形,得到三角形对应的边索引,如 Triangulation[2][0][0] = 0 表示 顶点-1 在“内部”其余顶点在“外部”时,第一个三角形的第一个顶点在 边-0 上。

Read More