STL容器概述
1. STL 容器总览
1.1 成员函数
1.2 非成员函数
附录
Containers library - C++
时间管理+事情记录
1. 简介
一直以来用了很多时间管理/日程安排工具来规划自己的时间和事情,但总是没法很好地执行,以至于每次规划的有效期不超过两周。比如,在手机上使用相关的软件时,只会在玩手机的时候注意到;而在电脑上使用相关的软件时,又只是在工作时才会注意到。而且,这些软件大部分都是平台不互通的,要么是只能在 Android 上使用,要么是只能在 IPad 上使用,或者只能在网页上使用。比如手机上自带的记事本,的确很方便,我之前时常用来记录自己一些重要的事情。但问题在于一旦离开手机就无法访问到自己的记录,而手机又主要是用来通讯的,即使正在使用手机也很容易沉溺于回消息而时常忘记去回顾记事本。
经过第 NNN 次失败后的反省,我终于意识到,为什么不配置一个跨平台的时间管理+事情记录的环境呢?经过一番搜索,微软家的 Outlook + OneNote 就可以很好地满足需求(唯一美中不足的是 Outlook 没有 Linux 版)。
相信,这次规化肯定能长期执行下去的,吧?
个人的跨平台需求是 Android(手机)+ IOS(IPad)+ Windows(电脑):
手机主要用来通讯,传递信息和获取信息; ...
Git配置指南
1. 配置说明
Git 配置分为三种:系统配置、全局配置和局部配置。
配置模式
作用域
Linux 配置文件
Windows 配置文件
系统配置
所有用户的所有仓库
/usr/local/git/etc/gitconfig
C:\Program Files\Git\etc\gitconfig
全局配置
当前用户的所有仓库
$HOME/.gitconfig
$HOME\.gitconfig (PowerShell)%UserProfile%\.gitconfig (CMD)
局部配置
当前用户的当前仓库
.git/config
.git\config
Git 三种配置文件的读取顺序为:系统配置 -> 全局配置 -> 局部配置。当多个配置文件中存在相同配置项时,后面读取的配置会覆盖前面读取的配置。
2. 配置读写
Git 的配置读写操作参数如下(命令前缀固定为 git config):
配置
查看
编辑
添加
删除
所有配置
--list
—
—
—
系统配置
--list --system
--system --edit
--sy ...
Windows10下配置CMake+Make+Cpp环境
1. 简介
在 Linux 上使用 CMake+Make+Cpp 环境简直不要太轻松,大多数 Linux 发行版都自带 Make 和 GCC,因此只需用命令安装一下 CMake 后即可使用。但在 Windows 10 上却需要好好配置一番才能使用……
2. 配置 MinGW-w64
MingGW-w64 项目旨在 Windows 系统上支持 GCC 编译器,其为 Windows 提供了使用 GCC 编译器的功能。为了更好地在 Windows 系统上使用 GCC 编译器,出现了一些工具合集软件,它们整合了更完备的 GCC 编译器环境供 Windows 系统下使用。比如 Cygwin 和 MSYS2,这里我个人推荐安装 MSYS2 包。
安装好 MSYS2 软件包后,在 Windows 10 的菜单栏中找到 MSYS2,然后打开 MSYS2 MSYS 程序,其提供了类 Arch 的终端环境(Archer 狂喜),然后安装一系列的 GCC 编译链工具:
12345pacman -S mingw-w64-x86_64-gccpacman -S mingw-w64-x86_64-cmake mi ...
Windows10配置PowerShell
1. 简介
Windows 系统一个令人诟病的地方在于,它的 Shell 终端太拉胯了。且不说原先的 CMD,难用且难看,就连新加入的 PowerShell 也是一如既往的难看。 对于长期使用惯了 Zsh 的用户来说,切换到 Windows 10 系统上的 CMD 和 PowerShell 简直就是噩梦!
不过 PowerShell 一直在发展更新,目前最新版是 PowerShell 7(Windows 10 自带的是版本 5.1)。而且它也出了跨平台版本,使用也和 Linux Shell 有很多兼容。只要将 PowerShell 合理配置一下,就能达到非常好用的效果。
个人推荐 Windows Terminal + PowerShell + oh-my-posh + posh-git。
2. 安装
2.1 Windows Terminal
Windows Terminal(WT)总算是微软拿得出手的一款开源终端应用了,其可以在 MicroSoft Store 里免费下载到。WT 可以用于 CMD、PowerShell 和 WSL 等终端解释器,WT 的开源仓库:https://g ...
Windows下flameshot配置
1. 简介
Flameshot 是一款非常好用的屏幕截图工具,而且还是一款开源的跨平台应用。个人因在 Linux 上习惯了 Flameshot,故迁回 Windows 系统后也继续使用这款截图工具。
2. 开机自启
打开 Flameshot,在菜单栏找到其图标,「右键」->「配置」->「常规」,勾选「开机时启动」。
3. 自定义截图快捷键
Flameshot 内置了很多快捷键(「右键」->「配置」->「快捷键」),而且大部分是可以自定义的。但恰恰最基本的「捕获屏幕」功能默认快捷键为 Print Screen,且不能修改!这让习惯 Ctrl + Alt + A 截图的我无所适从。
Flameshot 的「捕获屏幕」功能在 Linux 系统上可以正常修改。
好在 Windows 系统有强大的第三方软件生态支持。我们可以使用 AutoHotKey 软件来实现自定义 Flameshot 「捕获屏幕」快捷键的功能。
安装 AutoHotKey 软件;
新建 flameshot.ahk 文件,在其内部写入以下脚本:
12345;; flameshot remap ...
Windows快捷键速查
1. 常用
快捷键
说明
Ctrl + X
剪切选定项。
Ctrl + C(或 Ctrl + Insert)
复制选定项。
Ctrl + V(或 Shift + Insert)
粘贴选定项。
Ctrl + Z
撤消操作。
Alt + Tab
在打开的应用之间切换。
Alt + F4
关闭活动项,或者退出活动应用。
Windows 徽标键 + L
锁定你的电脑。
Windows 徽标键 + D
显示和隐藏桌面。
F2
重命名所选项目。
F3
在文件资源管理器中搜索文件或文件夹。
F4
在文件资源管理器中显示地址栏列表。
F5
刷新活动窗口。
F6
循环浏览窗口中或桌面上的屏幕元素。
F10
激活活动应用中的菜单栏。
Alt + F8
在登录屏幕上显示你的密码。
Alt + Esc
按项目打开顺序循环浏览。
Alt + 带下划线的字母
执行该字母相关的命令。
Alt + Enter
显示所选项目的属性。
Alt + 空格键
打开活动窗口的快捷菜单。
Alt + 向左键
返回。
Alt + 向右键
...
Windows自定义快捷键
1. 简介
Windows 提供了许多内置的全局快捷键,但却没有提供一种统一的自定义快捷键方法,一些内置的快捷键(比如复制、粘贴等),用户也是无法直接更改的。好在 Windows 的生态比较好,已经有一些第三方软件支持统一的自定义快捷键。
2. 启动程序
Windows 支持使用快捷键来启动程序,具体做法如下:
鼠标右键程序快捷方式(如没有则先创建),点击「属性」栏;
在「快捷方式」选项卡中找到「快捷键」选项;
将鼠标定位到输入框中,按下自定义的快捷键即可;如果想去除快捷键,按下回退键即可。
3. 切换输入法
Windows 支持使用数字快捷键来快速切换不同的输入法,具体做法如下:
打开「设置」->「时间和语言」->「语言」->「键盘」->「输入语言热键」;
找到自己想要快速切换的输入法,鼠标定位后点击「更改按键顺序」;
勾选「启用按键顺序」,然后设置对应的数字快捷键即可。
4. 第三方软件
4.1 AutoHotkey
AutoHotKey 是一款强大的开源 Windows 快捷键自定义软件,通过编写对应的 .ahk 脚本文件,用户可以自定义各种功能的 ...
VSCode插件Remote-SSH相关问题
1. Windows 下报错:Permissions for ‘xxx/.ssh/id_rsa’ are too open.
问题:当前用户 .ssh 目录下私钥权限太开放了;
解决:找到当前用户目录下 .ssh/id_rsa 文件,鼠标右键->属性->安全,然后编缉「组或用户名」,将除当前用户、SYSTEM 和管理员用户之外的其它用户都删除即可。
2. Linux 服务器杀死所有 Server 端进程
由于 vscode 缓存的原因,有时 Linux 服务器环境变量发生变动,需要将服务器上 vscode server 进程完全清掉,重新连接才能生效。在命令行中,清除所有 vscode server 进程的命令如下:
1ps uxa | grep .vscode-server | awk '{print $2}' | xargs kill -9
2016-ICML-Pixel Recurrent Neural Networks
1. 摘要
这篇文章[1]主要提出通过自回归的方式来建模自然图像的统计分布,将整张图像的概率分布表示成一系列条件分布的乘积。对自然图像的统计分布建模是无监督学习的标志性任务,这项任务要求图像模型同时具有表现力、可处理性和可伸缩性。作者们提出了一种可以序列处理图像像素模型,该模型对原始像素值的离散概率建模。模型架构的创新包括提出了一种快速的二维循环层,和有效地在模型中使用残差连接。本文提出的模型在自然图像数据集上达到了对数似然分数的 SOTA,并超出之前的 SOTA 很多。使用本文提出的模型进行图像样本生成,可以产生清晰连贯且多种多样的图像内容。
2. 引言
生成图像的建模是无监督学习中的核心问题。概率密度模型可以用于一系列的下游任务,诸如图像压缩、图像修复、图像去模糊等。然而,由于图像数据的高维化和高度结构化,估计自然图像的分布是极其具有挑战性的。
生成建模的一大重要阻碍是构建复杂且具有表现力的模型,同时要求其具有可处理性和可伸缩性。基于 VAE 的模型主要聚焦于随机隐变量建模,旨在能够提取出有意义的表示;但 VAE 中难以处理的推断步骤经常导致性能不佳。
一种有效的建模可处性的模型是 ...
循环码
1. 简介
循环码是一类非常重要的线性码,其不仅在理论上有很好的代数结构,而且其编码和译码都可以很容易地利用线性移位寄存器来实现。一些重要的码,比如二元汉明码及其对偶码都等价于循环码。
2. 定义
设 C⊆V(n,q)C \subseteq V(n, q)C⊆V(n,q) 是一个线性码。如果 CCC 的任意一个码字的循环移位还是一个码字,即当 a0a1⋯an−1∈Ca_0 a_1 \cdots a_{n-1} \in Ca0a1⋯an−1∈C 时,an−1a0a1⋯an−2∈Ca_{n-1} a_0 a_1 \cdots a_{n-2} \in Can−1a0a1⋯an−2∈C,则称 CCC 是一个循环码。
3. 性质
令 Rn=Fq[x]/⟨xn−1⟩R_n = F_q[x] / \langle x^n - 1 \rangleRn=Fq[x]/⟨xn−1⟩,其中 FqF_qFq 表示 qqq 元域 GF(q)GF(q)GF(q)。显然,V(n,q)V(n, q)V(n,q) 中的向量与 RnR_nRn 中的多项式之间存在着一个自然的一一对应关系:
a0a1⋯an ...
戈莱码
1. 简介
194919491949 年,Marcel Golay 给出了四个线性码,分别记为 G23,G24,G11,G12G_{23}, G_{24}, G_{11}, G_{12}G23,G24,G11,G12,现在称这四个线性码为戈莱码。G23G_{23}G23 和 G24G_{24}G24 为二元线性码,G11G_{11}G11 和 G12G_{12}G12 是三元线性码。无论从理论还是实用的角度看,戈莱码都是一类重要的线性码。
2. 二元戈莱码 G24G_{24}G24
2.1 定义
设 G=(I12∣A)\boldsymbol{G} = (\boldsymbol{I}_{12} | \boldsymbol{A})G=(I12∣A),其中 I12\boldsymbol{I}_{12}I12 是 12×1212 \times 1212×12 的单位矩阵,
A=(01111111111111101110001011011100010110111000101111110001011011100010110111000101101110001011011110 ...