在 C++ STL 中包含多种不同的字符转换方式,主要分为继承自 C 风格函数式转换和 C++ 刻面对象。 本地环境和刻面 本地环境是一系列刻面的集合,描述了本地字符的编码,刻面描述了各种文本处理的方案。 例如在默认的 "C" 本地环境中,本地窄多字节编码指的是 ASCII 码,而在 "Chinese (Simplified)_China.936" 本地环境中,本地窄多字节编码指的是 GBK 码。在 "en_US.UTF-8" 本地环境
分类: Computer
只需在额外 CSS 代码中添加如下内容,对于长图只需要在图片地址后添加 #height-full 即可。 .entry-content img { display: flex; margin: 0 auto; max-height: 512px; } .entry-content img[src*="#height-full"] { max-height: 100%; } 参考 MarkDown内如何调整图片的尺寸及对齐方式? WordPress建站教程:让所有图片自动居中
struct fenwick_tree_2d_t { lli n, m; array2d_t<lli> tre; fenwick_tree_2d_t(lli n, lli m) : n(n), m(m), tre(n + 1, m + 1, 0) { } lli lowbit(lli x) { return x & -x; } void build(lli** arr) { for (lli i = 1; i <= n; ++i) for (lli j = 1; j &
template <typename T> struct array2d_t { lli n, m; vector<T> data; array2d_t(lli n, lli m) : n(n), m(m), data(n* m) { } array2d_t(lli n, lli m, lli v) : n(n), m(m), data(n* m, v) { } decltype(auto) operator[](tuple<lli, lli> ind) {
struct group_t { struct edge_t { lli u; lli v; lli w; lli nxt; }; lli n; vector<lli> head; vector<edge_t> edge; group_t(lli n) : n(n), head(n + 1, -1), edge(1) { } void add_edge(lli u, lli v, lli w) { edge.push_back({ u, v, w, head[u] });
struct mat { lli n, m; vector<lli> vec; mat(lli n, lli m) : n(n), m(m) { vec.resize(n * m); } lli& at(lli i, lli j) { return vec[(i – 1) * m + j – 1]; } lli at(lli i, lli j) const { return vec[(i – 1) * m + j – 1]; } void zero(lli x = 0) {
这里使用的 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
C/C++ 参考手册 graph LR Fundamental[基础类型<br/>std::is_fundamental] Void[void<br/>std::is_void] NullPointer[std::nullptr_t<br/>std::is_null_pointer] Arithmetic[算术类型<br/>std::is_arithmetic] FloatingPoint[浮点类型<br/>std::is_floati
中所周知,C++ 中的 struct 来源于 C 语言历史遗留,除了默认作用域为 public 外,与 class 并无区别,理论上可以混用。我们这里通过标准库,以及 Unreal 等工程实践,对 struct 和 class 关键字的选择进行一个总结。 如果类型包含非 public 成员变量,应当选择 class 。 如果类型包含 virtual 函数,应当选择 class 。 如果类型可以 聚合初始化 ,应当考虑 struct 。 如果类型的构造析构以及赋值函数为 = default; 实现
本文完全由 ChatGPT 生成。 std::function 和 std::any 采用构造新对象并交换的实现方式,也有一些其他的优点和好处。例如,这种实现方式可以避免赋值运算符(operator=)抛出异常的情况,从而保证了赋值操作的异常安全性。 例如,如果 std::function 和 std::any 采用直接调用赋值操作的方式实现赋值,那么在赋值操作中如果抛出了异常,就可能导致对象的状态发生改变,从而导致程序的不正常终止。而采用构造新对象并交换的实现方式,可以避免赋值操作中抛出异常的
最近折腾 iSCSI 发现想断开一个 iSCSI 连接似乎并不是一件容易的事情。正常断开可能会遇到类似正在被使用中的提示,如果强行断开适配器, iSCSI 启动器会卡好久。同时如果使用任务管理器强行结束 iSCSI 启动器,再次打开后会发现虽然 iSCSI 目标不见了,但是重启电脑又会再次试图自动连接,薛定谔的 iSCSI 目标。通过谷歌发现 我不是一个人 ,网上有好多人遇到了该问题。 目前已知的可行操作方案步骤如下。 Iscsi Initiator -> Favorite Targets
首先,在 cppreference 上对于这部分的描述节选为。 声明于块作用域且带有 static 或 thread_local 说明符的变量拥有静态或线程存储期,但在控制首次经过其声明时才会被初始化。在其后所有的调用中,声明均被跳过。 如果初始化抛出异常,则不认为变量被初始化,且控制下次经过该声明时将再次尝试初始化。 如果初始化递归地进入正在初始化的变量的块,则行为未定义。 函数内部的静态局部变量的初始化是在函数第一次调用时执行,在之后的调用中不会对其初始化。 在多线程环境下,仍能够保证静态局
Markdown 语法 参考文档 参考文档 这一节介绍了你在使用 Markdown 语法写作时需要知道的概念。 部分语法限制在 Markdown Extra 中被更改,别忘了查看下方的 Markdown Extra 部分。 概述 哲学 Markdown 的目的是在可行的情况下尽可能地易于阅读和写作。 然而,可读性被强调在所有其他方面之上。一个 Markdown 格式的文档应该是可以作为纯文本发布的,而不像被标记过的标签或格式化说明。虽然 Markdown 的语法受到了几个现有的文本到 HTML
使用 Passster 插件可以通过密码区域性的保护一个段落,除了在后台新建保护区外,可以使用短代码。
这里使用的群晖型号为 DS418Play ,实测下来 PPPoE NET4 模式下网速只能达到 100Mbps ~ 300Mbps ,所以在这里特别说明一下,软路由也是需要性能的!千万不要变成作者一样的小丑。 网络设备结构图 下面分别是在使用软路由前和使用软路由后的网络设备结构图。 graph TD LT{{联通 1Gbps}} — 1Gbps — C[路由器] DX{{电信 300Mbps}} — 1Gbps — A[路由器] YD{{移动 4G}} — 4G — B[路由器
众所周知 Linux 汇总执行命令可以通过如下格式来将结果输出到文件中。 [命令] >> [文件名] 2>&1 其中 > 表示输出到, >> 表示追加到。 在 Shell 脚本中,默认情况下,总是有三个文件处于打开状态,标准输入、标准输出、标准错误,它们分别对应的文件描述符是 0,1,2 ,还有一个特殊文件是 /dev/null ,所有传给它的东西它都丢弃掉。 > 默认为标准输出重定向,与 1> 相同。 2>&1 意思是把 标
更改档案拥有者 命令 : chown [-cfhvR] [–help] [–version] user[:group] file… 功能 : 更改文件或者文件夹的拥有者 参数格式 : user : 新的档案拥有者的使用者 IDgroup : 新的档案拥有者的使用者群体(group) -c : 若该档案拥有者确实已经更改,才显示其更改动作 -f : 若该档案拥有者无法被更改也不要显示错误讯息 -h : 只对于连结(link)进行变更,而非该 link 真正指向的
吼吼吼,随便记记,支持小红,两个月不学会TTS不成仁 深度学习 神经网络算法通过向前传播与反向传播构成#1 先通过向前传播计算出预测结果和损失 再通过反向传播计算出损失函数关于每一个函数(w,b)的偏导数,并对这些参数进行梯度下降。 然后用新一轮的向前传播计算,反复训练使得预测越来越精准。 特征向量 激活函数 sigmoid(z)函数,用于将数据映射在0,1之间,若不使用激活函数,AI的智力将不会提升。 若是没有激活函数套在训练出的函数上,神经网络只能运算线性函数,所以无法解决复杂问题 sigm
类生命周期及常用运算符追踪器 struct FTracker { FTracker() { std::cout << "FTracker()" << std::endl; } FTracker(const FTracker&) { std::cout << "FTracker(const FTracker&)" << std::endl; } FTracker(FTracker&&am
参考文章 格式 <type>(<scope>): <subject> type 类型 feat – 功能 fix/to – 修复 fix – 产生 diff 并完全修复此 bug 适合于一次提交直接修复问题 to – 只产生 diff 不完全修复此 bug 适合于多次提交 最终修复问题提交时使用 fix docs – 文档 指不涉及代码文件的 如 .md 等文件的更新 style – 格式
函数签名 参考文档:new – delete 即使不包含 标准库 头文件,版本 可替换分配函数 与 可替换解分配函数 也会在每个翻译单元隐式声明。版本 可替换分配函数 与 可替换解分配函数 可以替换:在程序任意位置定义并在任意源文件的用户提供的拥有相同签名的非成员函数都会替换默认版本。它的声明不需要可见。 这意味着我们在替换全局 new/delete 函数时,无需在 .h 中声明,只需要在 .cpp 中定义他们。 对于某个可以替换的函数,如果程序中提供了它的多个替换,或它有带 inl
git commit –amend 修改上一个 Commit 。 git push -f 强制推送更新。
中国区技术总监的演讲,这里做一下笔记。
百度云链接 提取码 – iabs
template <typename T> void LOrR(T&) { std::cout << "L" << std::endl; } template <typename T> void LOrR(T&&) { std::cout << "R" << std::endl; } template <typename T> void FuncA(
在实现 TypeTraits 时发现标准库的 std::is_scoped_enum 在 C++23 才会正式实装,于是通过翻 Unreal Engine 4 的源码发现了一个巧妙的替代方案,类似如下的实现: NAMESPACE_PRIVATE_BEGIN uint8(&Resolve(int64))[2]; uint8 Resolve(…); template <typename T> struct TIsEnumConvertibleToInt : TBoolCons
问题 使用 UE4.23(最后一个支持 HTML5 平台的版本) 打包 HTML5 并部署到 Apache 服务器上,基本设置完成后出现错误,页面报错如下。 Uncaught TypeError: Cannot read properties of null (reading 'toLowerCase') Uncaught TypeError: Cannot read properties of null (reading 'toLowerCase') U
资源 通用 资源类型 前缀 后缀 Level / Map Level (Persistent) _P Level (Audio) _Audio Level (Lighting) _Lighting Level (Geometry) _Geo Level (Gameplay) _Gameplay Blueprint BP_ Material M_ Static Mesh SM_ Skeletal Mesh SK_ Texture T_ _* Particle System PS_ Widget B
进入终端 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 [路径] [快照名]
问题 众所周知 UE 的 HTML5 平台默认显示如下。 这存在如下几个问题。 Canvas 只在中间显示。 下面有多余的按钮。 解决 将 Canvas 设置为自适应分辨率。 将 Project Settings > Platforms > HTML5 > Canvas Scaling Mode 设置为 Stretch 。 将 Canvas Wrapper 设置为自适应分辨率。 修改 .css 文件中如下一段。 .wrapper { position: relative; ma
PS:由于 WP-Editor.md 的 Bug ,脚本中的 $ 符号不显示,需手动添加。 PS:换成 WP Githuber MD 之后就没有这个 Bug 了。 解决方案 cmake_minimum_required (VERSION 3.8) # Main project string(REGEX REPLACE ".*/(.*)" "\\1" CURRENT_FOLDER ${CMAKE_CURRENT_SOURCE_DIR}) project ($
虚幻引擎打包时,将在根目录中创建 BootstrapPackagedGame 启动 EXE 文件,并在 Binaries/Win64 中放置真正的 UE4 游戏 EXE 文件。 它通过以下过程创建: 将 引擎/Binaries/[平台]/BootstrapPackagedGame-[平台]-Shipping.exe 文件复制到根目录 更新 Build/Windows/Application.ico 图标 更新要执行的游戏 EXE 文件相对路径参数 更新游戏的基本参数 BootstrapPacka
class FTestTask { public: FTestTask(const FString& InTaskName) : TaskName(InTaskName) { } TStatId GetStatId() { RETURN_QUICK_DECLARE_CYCLE_STAT(TestTask, STATGROUP_TaskGraphTasks); } ENamedThreads::Type GetDesiredThread() { return ENamedThreads::
众所周知,UE 没有提供优先队列这一常用容器。 但是在 TArray 中有一些堆函数,可以实现优先队列的操作。 这里提供一个简单封装,其中 Priority 值越小优先级越高。 template<typename ElementType, typename ArrayAllocator = FDefaultAllocator> class TRFurPriorityQueue { public: FORCEINLINE TRFurPriorityQueue() = default;
国内原因 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 提取的: 如果失败
加锁的原则 规则10.1 多线程 进程并行访问共享资源时 一定要加锁保护 共享资源包括全局变量,静态变量,共享内存,文件等。 建议封装像智能指针一样的对象对锁进行管理,比如我们就封装了一个 auto_lock ,在构造时申请锁,析构中释放锁,保证不会忘记解锁。 规则10.2 锁的职责单一 每个锁只锁一个唯一共享资源,这样,才能保证锁应用的单一,也能更好的确保加锁的范围尽 量小。对于共享全局资源,应该根据实际需要,每类或每个资源,有一把锁。这样,这把锁只锁对这个资源访问的代码,通常这样的代码都会是
一键跳转至题目 题目描述 机器上有 $n$ 个需要处理的任务,它们构成了一个序列。这些任务被标号为 $1$ 到 $n$,因此序列的排列为 $1 , 2 , 3 \cdots n$。这 $n$ 个任务被分成若干批,每批包含相邻的若干任务。从时刻 $0$ 开始,这些任务被分批加工,第 ii 个任务单独完成所需的时间是 $T_i$ 。在每批任务开始前,机器需要启动时间 $s$,而完成这批任务所需的时间是各个任务需要时间的总和。 注意,同一批任务将在同一时刻完成。 每个任务的费用是它的完成时刻乘以一个费
本文用来水暑假的研究性学习报告 摘要 本文给出了一种基于 HFish 的网络威胁捕捉与诱骗系统的简单搭建模式,并通过此系统捕捉了当今互联网上的部分网络攻击,通过这些数据进行简单的整理分析,透漏出网络中的潜在威胁。 关键词 网络安全 黑客攻击 网络攻防 密码破译 研究背景 作为一个小型个人网站的站主,可能并不会感觉到自己的网站被扫描与攻击,但实际上,互联网中有不少潜在的威胁。网站在明处,潜在威胁在暗处,并不容易对潜在威胁做定性定量分析,所以就需要威胁捕捉与诱骗系统通过模仿真实网站的行为,捕捉潜在的
引擎: UE4.26.2 构建版本 事情的起因是写体素构建器的时候,想生成个球,就想到抄材质的 SphereMask 节点。 这里以 SphereMask 节点为例,分析材质蓝图节点的定义。 UMaterialExpression 材质节点的 C++ 父类为 UMaterialExpression ,定义在 MaterialExpression.h 头文件中,所有原生材质节点均为此类的子类,此类主要成员如下。 virtual int32 Compile(class FMaterialCompil
问题 在从 UE4.24 升级到 UE4.26 后,想打包安卓,删除了以前的 NDK 然后根据官网指示安装新的 NDK ,在打包时提示打包失败,Log 关键内容如下。 UATHelper: Packaging (Android (Multi:ASTC,DXT,ETC2)): ====2021-08-09 14:35:59====PERFORMING FINAL APK PACKAGE OPERATION=====-armv7====================================
这是 2021年山大未来科学营(夏季)- 人工智能与发明创造未来科学营 的作业 所以看看就行 基本信息 名称:远程智能房间巡逻警报机器人 解决家里/房间长期无人,但是有设备运行或其他需求,需要远程监控。可以方便远程监控家中环境,监控设备的运行状态,并且具有良好的机动性和灵活性,可以适应不同的房间环境。 硬件连接图 graph LR 摄像头 — 树莓派 超声传感器 — 扩展板 5路组件 — 扩展板 树莓派 — 扩展板 扩展板 — 电机驱动板 扩展板 — 测速左 扩展板 —
假设我们有一个带 USTRUCT 宏的结构体,我们希望在蓝图中可以以自己的方式 Make 或者 Break ,这个需求通常是因为我们在结构体里用了 C++ 中不支持反射的成员。 USTRUCT(BlueprintType, Meta = (HasNativeMake, HasNativeBreak)) struct FMeshVertex { GENERATED_BODY() UPROPERTY(EditAnywhere) FVector Position; UPROPERTY(EditAnyw
Establish Battlefield Control, Stand By — 战场控制建立,请等待。 Battle Control Online — 作战控制连线。 Incoming Transmission — 信号输入。 New Objective Received — 收到新的任务目标。 Objective Complete — 任务目标完成。 Mission Accomplished — 任务完成。 Missi
Lengyel-VoxelTerrain.pdf
ParallelFor 是 UE 内置的支持多线程并行处理任务的 For 循环,在渲染系统中应用得相当普遍。 调用方式 函数签名 void ParallelFor(int32 Num, TFunctionRef<void(int32)> Body, bool bForceSingleThread, bool bPumpRenderingThread = false); void ParallelFor(int32 Num, TFunctionRef<void(int32)>
UFUNCTION() virtual void FunctionName(…) PURE_VIRTUAL(ClassName::FunctionName, … );
CornerCoordOffset[8] – 表示顶点索引到顶点空间位置的映射,如 CornerCoordOffset[0] = (0,0,0) 表示 顶点-0 的位置是 (0,0,0) 。 Triangulation[256][5][3] – 表示三角形拆分,可以通过顶点状态(通过位掩码)拆分三角形,得到三角形对应的边索引,如 Triangulation[2][0][0] = 0 表示 顶点-1 在“内部”其余顶点在“外部”时,第一个三角形的第一个顶点在 边-0 上。
Vertices = { { -50.0f, -50.0f, -50.0f }, { 50.0f, -50.0f, -50.0f }, { 50.0f, 50.0f, -50.0f }, { 50.0f, 50.0f, -50.0f }, { -50.0f, 50.0f, -50.0f }, { -50.0f, -50.0f, -50.0f }, { -50.0f, -50.0f, 50.0f }, { 50.0f, -50.0f, 50.0f }, { 50.0f, 50.0f, 50.0f
基于 Mermaid 类图规范编写: Mermaid: Class diagrams “在软件工程中,统一建模语言 (UML) 中的类图是一种静态结构图,它通过显示系统中的类以及它们的属性和操作(或方法)再加上类之间的关系来描述系统的结构。” 维基百科 类图是面向对象建模的主要构建基础。它可以用于应用程序一般结构的概念建模,以及将模型转换为编程语言代码的详细建模。类图也可用于数据建模。类图中的类表示应用中的主要元素、交互和要编程的类。 Mermaid 可以渲染类图。 classDiagram A