自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 资源 (1)
  • 收藏
  • 关注

原创 修改 Windows 系统用户文件夹名 以解决兼容性问题

带中文的用户名目录可能导致兼容性问题。由于 Windows 下不能直接修改用户文件夹的名称,我们通过创建一个到该用户文件夹的 junction,来提供不带中文字符的目录重定向。

2022-12-28 18:46:22 2071 6

原创 ffmpeg 转码 iPhone 录制的 HDR 视频,命令行示例

利用 ffmpeg 将 iPhone 录制的 HDR 视频转换为普通 SDR 视频,含 Tone Mapping,完整命令。

2022-12-19 21:47:26 1400

原创 C++ SFINAE 在模板偏特化中增加额外的约束 trait

我们经常需要确定某个类型是否为某个模板的实例,写一个简单的 trait 即可,这里我们使用了一个非常简单的偏特化:template <typename T>struct A {};template <typename>struct is_instantiation_of_A : std::false_type {};template <typename T>struct is_instantiation_of_A<A<T>> : s

2022-05-19 12:45:05 546

原创 C++ IDE 推荐保持打开的 clang-tidy 检查列表

Clang-tidy 是一个比较实用的代码检查程序,它可以检测出很多笔误等低级错误,也会提出一些已经得到广泛验证的 best practice,不过提供的检查数量众多,有些过于严苛,还有一些互相矛盾(比如 fuchsia-trailing-return 建议你永远不要写 尾随返回类型,但 modernize-use-trailing-return-type 建议你总是这样写),所以我们必须有选择地打开一部分真正有必要的检查。我过了一遍目前(2022-01-19)提供的 所有检查项目,然后根据 CLion

2022-01-19 16:10:28 2840

原创 CMake 使用 GCC 编译器 (Windows)

Windows 下如果安装了 VS 则 CMake 会默认创建 VS 的工作区,我们想用 gcc 的话设置 CMAKE_C_COMPILER 没用。解决方法是往 cmake 命令中加点参数:cmake CMakeLists.txt -G "MinGW Makefiles"这样就可以创建出 GCC 使用的 Makefile 了。...

2021-12-10 16:35:47 2977

原创 Excel 连接 MySQL 导入数据 自定义 SQL (Excel 2016 + 适用)

新版 Excel 对 MySQL 的兼容已经比较好了,网上流传的 2 种方法:MySQL ODBC ConnectorMySQL for Excel前者比较繁琐,后者虽然方便但毕竟是借助插件;这里说一下用 .NET 连接器的方法。下载安装 MySQL .NET Connector重新打开 Excel(我是 2016),点击“数据 → 新建查询 → 从数据库 → 从 MySQL 数据库”输入数据库地址(本机就是 localhost:3306)和要进入的数据库名,然后点击下面的“SQL语句”

2021-11-29 12:17:47 3531 1

原创 正则匹配文本文件中的 3 种换行符 (行尾)

讨论错误示范:错误示范 1:\n —— 不匹配 Windows 行尾(CRLF);错误示范 2:\r\n|\n —— 不匹配旧式 mac 行尾(CR);错误示范 3:[\r\n]{1,2} —— 错误匹配“LFCR”;错误示范 4:\r?\n —— 不匹配旧式 mac 行尾(CR);错误示范 5:\n|\r|\r\n —— CR 和 LF 被拆开,如果存在 CRLF 将匹配出两个子串;错误示范 6:\r\n?|\n —— 这个的 bug 很难发现,问题在于:如果文件中存在 LFCRLF,则

2021-11-02 12:07:04 14593 4

原创 解决 Python 导入模块错误 ModuleNotFoundError、ImportError、ValueError (深入浅出)

文章目录翻车实录到底哪种方法有效再次翻车解决方案:两个坏的和一个好的翻车实录我们经常需要从一个文件中调用另一个文件中的 Python 代码,import 就是干这个用的,不过我想你也可能跟我一样,有时会遇到:ModuleNotFoundError: No module named ...:无法定位模块如果你像一些网上的帖子一样,用 .. 来做相对导入,你又会遇到这样的错误:ImportError: attempted relative import with no known parent

2021-10-28 16:30:41 3638 1

原创 Python 计算字符串 最长公共前缀 (Longest Common Prefix),极简

力扣原题其实就是想记一下这个华丽的大推导式,一行解决:# strs 是要计算最长公共前缀的一系列字符串strs = ['hello', 'hella', 'helley', 'hellim']# prefix 是结果,应为“hell”prefix = str().join([item[0] if len(set(item)) == 1 else '\x00' for _, item in enumerate(zip(*strs))]).split('\x00')[0]...

2021-10-21 12:15:29 244

原创 Python 获取目录及子目录下所有文件 (不包括文件夹),极简

其实就是想记一下这个华丽的大推导式,一行解决:# path 是要遍历的根目录,"." 是当前目录path = '.'# files 就是所有文件的绝对路径列表,不包括目录files = [os.path.abspath(os.path.join(r, f)) for r, _, fs in os.walk(path) for f in fs]...

2021-09-24 14:33:23 2607

原创 正则匹配类 C 语言的块注释,包括换行

匹配 C、C++、C# 块注释(多行注释)的正则表达式:/\*[\s\S\r\n]*?\*/如果加上行注释,就是//.*$|/\*[\s\S\r\n]*?\*/效果:简洁优雅。注: 其中的正斜杠请根据需要自行转义。

2021-08-26 18:57:20 549

原创 Unity C# 爆破计划(十五):LINQ 与迭代器

文章目录十五、LINQ 与迭代器LINQ 基础from 与 select 查询where 查询迭代器迭代器的使用Take 与 Skip迭代器方法及早计算与延迟计算十五、LINQ 与迭代器Covers:LINQLINQ 基础我们经常需要从某个数据库(或数据源)查询满足特定条件的内容。这里的数据库或数据源,可以是支持 SQL 的数据库如 MySQL 等,也可以是某个 HTTP 请求地址,最简单的情况下也可以是一个简单的数组。例如:一副扑克牌由 4 个花色、每个花色 13 张牌,外加大小王组成。要打印

2021-08-09 23:21:12 529 2

原创 Unity C# 爆破计划(十四):事件

文章目录十四、事件概念事件定义语法事件参数订阅关系事件源订阅者和事件处理器调用代码事件编写八股事件源的简写事件驱动十四、事件Covers:委托与事件概念事件 在真实世界中无处不在,你可能不知道 C# 中事件的概念,但你一定了解这个词的本义。我们抛开编程不谈,先考察一下“事件”的逻辑性质。你的朋友发来一条信息,约你去打球。关于这一事件,我们能总结出事件 3 个要素:你的朋友是 事件的发起者,这件事是由他引起的,换言之,在事件发生之前,你的朋友就是一个潜在的事件发生器;你是事件的 接收者,这个

2021-02-22 22:47:32 957

原创 Unity C# 爆破计划(十三):委托与 Lambda

文章目录十三、委托和 Lambda委托概念泛型委托Func 和 Action 委托多播并发执行Lambda匿名函数局部函数十三、委托和 LambdaCovers:委托与事件,Lambda 是补充内容我们刚刚学过泛型,委托与泛型有着很多联系,Lambda 又常常与委托配合使用,因此我们先讨论这一块。委托概念现代的通用计算机在架构上属于冯 · 诺依曼机,它是由美籍匈牙利科学家约翰 · 冯 · 诺依曼等人提出的计算机架构。世界上第一台冯氏机,即“原型机”是 1949 年的 EDVAC。冯氏机机要

2021-02-22 14:43:12 238

原创 Unity C# 爆破计划(十二):泛型

文章目录十二、泛型概念泛型编程基础十二、泛型Covers:泛型概念考虑在算法一节接触过的“交换变量内容”,我们可以这样写:static void Swap(ref int a, ref int b){ int tmp = a; a = b; b = tmp;}Swap 函数通过引用传参,可以操作调用方传入的变量,将两个整型变量的内容互换。现在问题来了,我们又想写一个函数来交换两个浮点型变量的内容:static void Swap(ref double a, re

2021-02-21 21:29:53 194

原创 Unity C# 爆破计划(十一):动态多态

文章目录十一、动态多态认识多态抽象类虚方法接口十一、动态多态Covers:多态(抽象类)、多态(接口)认识多态多态 就是一个行为可以具有多种形式或效果。在生活中你不可能没见过多态性:同一个行为“着装”,穿着校服你表现得就像是在上学,穿着西装你看起来就像是要出席重大场合,穿着睡衣你看起来就像是刚起床 —— 人就是个衣架子(夸你长得好看),总要接受一件“衣服”,但衣服的种类不是固定的,当获得了一件具体的衣服时,“穿衣服”这一行为就产生不同的效果。多态分为 静态多态 和 动态多态,静态多态发生在编译时

2021-02-21 20:01:32 190

原创 Unity C# 爆破计划(十):基本算法

文章目录十、基本算法并查集二叉堆与堆排序十、基本算法Covers?基本算法额……这一节不知道要写点什么好,算法这个主题太大了,游戏中要使用的算法也太多了,这部笔记不是算法讲座,姑且写两个比较经典的。并查集并查集就是“并集”和“查集”两个任务,现在假设有一堆集合,我们关注两件事:任取两个元素,如何判断它们是否在同一个集合中如果不处于同一个集合,如何用最优的方式将两个集合合并完成这个算法的关键是“如何表示多个不相交且随时可能合并的集”,这要是直接做一个集合容器,然后不断摧毁、挪动元素还

2021-02-21 16:19:15 199

原创 Unity C# 爆破计划(九):命名空间与 using

文章目录九、命名空间与 using命名空间using 关键字九、命名空间与 usingCovers:命名空间命名空间今天你准备写一个处理二维几何图形的程序,你用了 Shape 作为所有图形的基类,这很好;第二天你准备更上一层楼,写一个处理三维几何图形的程序,同时你还想让它跟昨天的成果相兼容。要怎么定义所有三维图形的基类呢?你英语不好,没想到“Geometry”这么高级的词汇,同时又不想用“Shape3d”这么 Low 的词……想来想去你决定还是用 Shape。那么问题来了,两个基类重名了,怎么办

2021-02-20 20:08:11 340

原创 Unity C# 爆破计划(八):Console 类

很酷,没有目录八、Console 类本节是补充知识Console 类是静态类,用于实现控制台交互。下面是它提供的一些方法与 C++ 的对比:C# 语法C++ 等效整行打印Console.WriteLine(DATA);打印内容并换行cout << DATA << endl;仅打印Console.Write(DATA);打印内容但不换行cout << DATA;整行读取VAR = Console.ReadLine().

2021-02-20 19:32:32 241

原创 Unity C# 爆破计划(七):类与对象

文章目录七、类与对象启蒙属性属性与访问器自动属性继承(基础知识)父类与子类父类的初始化静态成员静态类Console 类七、类与对象Covers:类、属性、静态类型、继承我们正式进入面向对象知识的学习。这节的内容很多,以防你赶时间,先上语言对比:C#C++成员种类字段、属性、方法、索引、事件成员变量、成员函数访问权限5 种(已经介绍过)3 种成员默认权限privateprivate类默认权限internal无此概念多继承不支持简单多继承

2021-02-20 19:21:49 254

原创 Unity C# 爆破计划(六):枚举和结构体

文章目录六、枚举和结构体枚举结构体六、枚举和结构体Covers:枚举和结构体枚举枚举是一种有限集合。生活中的有限集合很多,比如“一周中每天的名称”只有 7 种、“生日对应的星座”只有 12 种(现在好像是 13 种了?),这些事物都适合用枚举来描述。写一个枚举的例子:using System;namespace Enums{ enum Weekday { Sun, Mon, Tue, Wed,

2021-02-20 11:42:57 154

原创 Unity C# 爆破计划(五):方法与权限

文章目录五、方法与权限访问权限定义方法参数传递可变参数五、方法与权限Covers:方法和函数访问权限尽管还没有正式开始讲 C# 的类,但我们已经写过一个类 class Program 了,并且向其中添加了一个方法 static void Main。C# 中一切都是对象,因此一切函数都是方法;方法就是封装在类或结构中的函数;封装就是把函数和数据打个包(这个包就是类或者结构);而言及封装就涉及到访问权限,因此我们需要先了解 C# 对访问权限的定义。C# 中有 5 种访问权限:private:只

2021-02-20 10:22:50 225

原创 Unity C# 爆破计划(四):数组

文章目录四、数组一维数组交错数组多维数组四、数组Covers:数组一维数组C# 也是使用下标运算符 [] 来定义和访问数组的。C# 不区分堆中和栈中数组,也不存在空间释放问题,下面是语言对比:C#C++下标起始同 C++0内存策略无区分,均用 new 关键字,不需要手动释放堆区或栈区,语法不同,堆区需要手动释放数组名的本质引用指针仅声明(C++)、仅定义引用(C#)TYPE[] ARR;TYPE *PTR; 或 TYPE ARR[SIZE]

2021-02-19 22:16:58 287 4

原创 Unity C# 爆破计划(三):流程控制

Covers:条件语句、循环本期的内容非常少,我们都是有编程基础的人,不要浪费生命在重复启蒙上。直接上 C# 与 C++ 的语言对比:流程结构C#C++if-else同 C++if (COND) {} else {},else 与 if 之间要有空格switch-case同 C++整型或枚举,每个 case 都需要 breakwhile、do-while同 C++while (COND) {}、do {} while (COND)循环例外同 C++

2021-02-19 19:14:28 167

原创 Unity C# 爆破计划(二):变量与数据

文章目录二、变量与数据变量与常量类型策略简单类型整型浮点型布尔型可空类型引用类型对象类动态类字符串类类型转换强制类型转换ToType 方法Parse 方法自动类型推导运算符算术运算符关系运算符逻辑运算符位运算符赋值运算符其他运算符优先级二、变量与数据Covers:变量与常量、类型与运算符变量与常量懒得废话:C# 对声明和定义不作区分(在 C++ 中定义指发生了内存分配),声明时就发生了定义;允许变量先定义后初始化,用 TYPE VARNAME; 定义变量 VARNAME 但不初始化;等号

2021-02-19 19:13:41 316

原创 Unity C# 爆破计划(一):预备 & 基本操作

Unity C# 爆破计划Unity Crash Learning: C# Notes〇、学习清单与科普作者学习 C# 这门语言的目的性非常强:掌握足够应对游戏开发编程的内容,涉及 .NET 框架本身的知识对我们并不重要。学习清单最近看到了 Unity 大学的广告,这是个官方推出的培训实体课,看了一下他们的学习内容,又看了看价格,算了算了,感觉一半是智商税。下面是 Unity 大学广告给出的 C# 部分授课清单:基础阶段:对象与基本操作变量与常量类型与运算符条件语句循环数

2021-02-19 19:13:07 681

翻译 stb 作者教你如何编写单文件 (Header-only) 的 C/C++ 库

说明所谓单文件库,就是整个库只有一个头文件,用起来就像引入标准库一样简单。最近需要写单文件(Header-only)形式的工具库,于是参考了 stb 库 作者提供的指南,感觉真不绰。下面是我对这篇文档的翻译版本,由于个人水平所限,难免有所纰漏,因此给出了英文原文作为对照。英文版文档包含于 stb 库的 docs 文件夹,也可以 在这里查看。正文关于如何创建单文件库,我所学到的—— Sean Barrett 于 2013 年 9 月当创建形式类似于 stb 库的单文件库时,你应该做的,以及为什

2020-12-22 17:25:52 2773

原创 MinGW-w64 启用 LTO 加快链接速度

GCC 链接慢是个很要命的问题。在 Windows 下使用 MinGW 64 编译器时,项目稍大一些,链接就会变得非常慢,然而使用 MSVC 编译相同的代码时,链接用时都是毫秒级。网上搜索了一圈没有找到比较好的解决办法。进一步了解到 GCC 4.7.0 开始支持 LTO(链接时间优化),信息来源是 这篇博客,但默认情况下是不开启 LTO 的。Windows 下要启用这个功能很简单,做两件事:把 MINGW64-根目录\libexec\gcc\x86_64-w64-mingw32\8.1.0 下的 l

2020-10-08 23:13:03 1296

原创 真相:C++ 嵌套类与外围类的访问权限关系

最近遇到了写嵌套类的情况,涉及到访问权限问题。什么是嵌套类C++ 允许在一个类的内部定义另一个类,在内部定义的类称为 嵌套类,包含嵌套类的类就称为该嵌套类的 外围类。比如:class Outer { // Outer 是外围类 class Inner { // Inner 是嵌套类 }}嵌套类有这样一些性质:嵌套类的名字只在其外围类内可见,在类外使用时,需要加作用域;嵌套类可以直接引用外围类的静态成员、类名和枚举成员,不需要加作用域;继承一个嵌套

2020-08-14 22:26:53 1079 3

原创 C++ 异常 0xC0000005 访问冲突,exit code 0xC0000005 的解决方法

该异常代号对应“访问冲突”,即内存的读写权限冲突,一般意味着代码中存在 3 种可能的问题……

2020-08-03 12:35:02 25881

原创 C++ 实现随机字符串生成器(C++11标准)

这篇随记主要想说明的是:怎么实现这个生成器;C++11 推荐的随机数发生方法。代码如下:#include <string>#include <random>using std::string;using std::random_device;using std::default_random_engine;string strRand(int length) { // length: 产生字符串的长度 char tmp; // t

2020-08-02 19:47:14 10075

原创 解决 NVIDIA Container 在后台资源占用过高的问题

最近安装了 CUDA 10.1,并且因为原来的显卡驱动版本不够,顺便安装了 CUDA 自带的显卡驱动,但自从装上以后,计算机的风扇就狂转,后台有个 NVIDIA Container 一直占用约 12% 的 CPU,搜索发现这是驱动程序的已知问题。解决方法:安装高于 430.53 版本的显卡驱动即可,我安装的是 2019 年 6 月发布的著名“鸡血驱动” 436.02 版,安装完毕后问题解决。...

2020-06-26 11:30:59 13908

原创 Matplotlib 中 y 轴显示为百分比形式的方法

用 Matplotlib 作图,需要纵轴显示为百分比,网上查到的方法都比较麻烦,这里给一种简单的方法。先引入包:from matplotlib import pyplot as pltfrom matplotlib import ticker然后参照如下代码,data 存储的是数据,取值在 0 到 1 之间,导入过程略:fig, ax = plt.subplots()ax.plot(data)ax.yaxis.set_major_formatter(ticker.PercentFormatt

2020-06-25 18:58:36 20391 2

原创 Windows 下安装 TensorFlow 2.2 GPU 版 教程:坑多,整理出来方便大家 (2023 年更新)

我帮你跳完了所有坑,总结出这篇 TensorFlow 2.2 GPU 版的保姆级安装教程,一篇搞定!适用于 Windows 10、11(原创博文,请勿盗用)。

2020-06-24 18:18:03 8848

原创 Windows 下 pip 安装模块出现 [Errno 13] Permission denied 解决方法

最近在 Windows 系统安装 TensorFlow,是在 VirtualEnv(venv)环境下,原本是执行这个:pip install tensorflow但屡次出现“[Errno 13] Permission denied”错误。经过折腾发现,貌似官方不建议使用直接运行 pip install <pkgname> 的语法了,用以下命令代替:python -m pip install tensorflow我用这个命令就不再报错了,如果还没有解决,尝试:python -m pi

2020-06-24 13:07:58 2218 1

原创 彻底解决 Windows 下 PHP 响应异常缓慢的问题

问题描述PHP 写的后端程序,一旦涉及数据库操作,响应就会变得异常得慢(这里的异常是指:同样的程序在 Linux 下执行,速度没有问题),常常需要等待数十秒,但每次的返回结果中,实际用于执行 SQL 查询的时间均短至毫秒量级。PHP 版本:7.2.25、7.2.13、7.1.33、5.3.3,无论老版本还是目前 7.2 最新的子版本都有一样的问题,看来官方似乎并不想处理。问题排查进行查询操...

2019-12-08 13:59:12 2805

原创 C++矩阵运算库Eigen快速上手指南

介绍Eigen 3 是一个以纯泛型编写的 C++ 矩阵运算库,它的协议是 MPL2,以源代码的形式提供给用户,所以只要把它的代码 include 进自己的程序就可以使用,不需要链接 DLL,也没有任何除 iostream 以外的依赖项。实用链接官网官方文档所有头文件列表例程下面是一个比较全面的示例,我写了较多的注释来澄清一些上手时容易误会的问题,旨在帮助你在一个小时内学会 Eig...

2019-09-18 21:44:46 878

原创 C++如何在cout中正确使用退格“\b”

文章目录结论错误示例 1错误示例 2正确示例 1正确示例 2结论简单地说,\b 之后不能紧接着换行,无论用什么方式换。错误示例 1代码:cout << "1,2,3,4,5,\b" << endl;希望输出:1,2,3,4,5实际输出:1,2,3,4,5,原因:std::endl 在刷新输出缓冲区的时候同时会换一个行。错误示例 2代码:cou...

2019-08-14 23:21:34 17281 2

原创 如何给 GitHub Pages 页面设置图标 (favicon)

向站点根节点(或者随便什么目录)加入一张图片 favicon.ico(未测试 png 格式)向静态站点的 index.html 的 <head> 节点加入子节点:<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico?">如果是...

2019-08-01 21:53:59 3879 1

原创 Flarum: 搭建和部署

文章目录前提下载依赖安装配置重定向前提本文简要指明如何快速在运行php / Caddy Server的网站上,以子域名的方式部署现代BBS平台Flarum,我选用的是 FlarumChina 中文优化版。有用的站点:Flarum 英文官网Flarum on GitHub中文社区下载依赖关闭php和服务器;首先选下列三样之一下载:推荐 从 GitHub 下载部署脚本...

2018-12-09 21:48:26 3820

modules.json for Unity 2019.4.15f1c1

单独下载的 Unity 安装,在 Hub 中会无法添加模块,将本 json 放入引擎的安装根目录(不是 Editor 文件夹内,要与 Editor 文件夹放在同一级),重启 Hub(一次不行就重启 2 次,或者重启电脑)即可。 参考:https://blog.csdn.net/honey199396/article/details/107489744

2021-07-30

空空如也

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

TA关注的人

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