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 &
作者: _Redstone_c_
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 采用直接调用赋值操作的方式实现赋值,那么在赋值操作中如果抛出了异常,就可能导致对象的状态发生改变,从而导致程序的不正常终止。而采用构造新对象并交换的实现方式,可以避免赋值操作中抛出异常的
马说 卦者灵风 – Synology VideoStation
作者:卦者灵风 大漠 有马 明天理 相传 行千里 身如焰 汗似血 疾驰 擎天底 绮丽 头生犄 此状 凡马未可比 此乃祥瑞 迹 举朝 皆喜 谁得利 远观那千里马 一团火 撩起大漠 奔腾 嘶鸣 腾空 坠落 无比洒脱 圣上 欣喜万分 盛世才有此佳作 然 主隆恩 绝不会给马套上枷锁 赵丞相抹了抹汗 这算是勉强又过了一关 护驾回宫 身姿卑躬 眼睛深深的埋在臂弯 他暗骂 这蠢马不知好歹 竟敢发出鹿鸣 还好声小式微 很快便被繁杂噪音抚平 斑纹被鲜血遮盖 上面又点上一把火 再在远处造些雾霾 朦胧中更添几分把握
最近折腾 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[路由器
词曲唱:因你而在的梦 卦者灵风 视频:卦者灵风 混音:神兔小P 编曲:Mr.Nine 曾有鲤鱼池中 抬望眼 奋勇跃起腾飞 万丈险 终是龙行四海 立浪尖 光耀门楣凭此 慰苍天 这是我自幼听闻的传说 兴许是浪潮来将我给撺掇 打湿的鳞片斑驳 怕让心愿散落 我在泥沙间做不到淡泊 遥知龙门山上无水路 我却觉是因祸得福 有寒门化开的雪(学)汇入 都尽数流进我的湖 先学(鲜血) 水至清则无鱼 浑浊的世道 让我学会抱拳(保全) 燕雀 安知金鳞远志 锦鲤(经历)被曝晒 前途总耀眼 祖上额头的黑疤(黑八)是奇迹 鲤
哥谭 – Synology VideoStation
词曲唱视:卦者灵风 副歌节选:饮酒·其五 编曲:JaylinN 混音:神兔小P 结庐在人境 而无车马喧 问君何能尔 心远地自偏 山气日夕佳 飞鸟相与还 此中有真意 欲辨已忘言 早起 劈柴 闻花香听着虫鸣 锄地 在谷底 铁木回声空灵 露珠 沾湿帽檐 在日光下玲珑 可纵情 何不是种荣幸 这令我钟情 和憧憬 山水不比嘈杂尘世光洁 和煦的风在旷野 青葱的草地 从不计较我的服饰 缠身鼓乐 繁文缛节 都可忘却 在漫漫长夜 伴我有竹影和圆月 做独行的燕雀 千里马鸿鹄请去骈列 算我欠缺 强咽喉中 骨鲠的本领 我
众所周知 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 真正指向的
类生命周期及常用运算符追踪器 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
哔哩哔哩写给所有互联网平台的挑战书 卦者灵风 – Synology VideoStation
权利的游戏 – Synology VideoStation
金银 卦者灵风 – Synology VideoStation
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
在 C++ 中对应 \x200f ,Alt码 为 8207 的特殊字符。
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::
成龙历险记 – Synology VideoStation
众所周知,UE 没有提供优先队列这一常用容器。 但是在 TArray 中有一些堆函数,可以实现优先队列的操作。 这里提供一个简单封装,其中 Priority 值越小优先级越高。 template<typename ElementType, typename ArrayAllocator = FDefaultAllocator> class TRFurPriorityQueue { public: FORCEINLINE TRFurPriorityQueue() = default;
加锁的原则 规则10.1 多线程 进程并行访问共享资源时 一定要加锁保护 共享资源包括全局变量,静态变量,共享内存,文件等。 建议封装像智能指针一样的对象对锁进行管理,比如我们就封装了一个 auto_lock ,在构造时申请锁,析构中释放锁,保证不会忘记解锁。 规则10.2 锁的职责单一 每个锁只锁一个唯一共享资源,这样,才能保证锁应用的单一,也能更好的确保加锁的范围尽 量小。对于共享全局资源,应该根据实际需要,每类或每个资源,有一把锁。这样,这把锁只锁对这个资源访问的代码,通常这样的代码都会是
本文用来水暑假的研究性学习报告 不要认真 摘要 本文给出了朴素 Marching Cubes 算法体素网格体在 Unreal Engine 4 中的实现方案,通过生成一个具有“光滑”表面的球体来演示算法的可行性。 关键词 MarchingCubes UnrealEngine 网格重建 游戏开发 研究背景 《Minecraft》是当下比较火热的游戏之一,他的体素地形系统大大提高了玩家对地形的修改能力,使得自由度大大提高,其体素表示是基于 立方体 而不是 Mesh ,这使得其对曲面的表达能力受限,同
本文用来水暑假的研究性学习报告 摘要 本文给出了一种基于 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
Он дракон – Synology VideoStation