【编程笔记】0

文件打开模式

文件打开模式的选项在每个编程语言里都有(因为其实基本都只是 wrap 了 C 的 IO 模块,所以大同小异)。

file_mode.png

source: open-built-in-function-difference-between-modes-a-a-w-w-and-r?

remove trailing spaces

移除行尾后的空格,不然有时候会污染 git 的 diff。

在 VSCode 里把 "files.trimTrailingWhitespace": true 就好了。

source: Remove trailing spaces automatically or with a shortcut

正则表达式

因为这几天正则搞得比较多。主要是 ? 的 case 的问题之前不太清晰。还寻思着过段时间把上次挖坑的 regular expression engine 写掉的。

  • ^, start
  • $, end
  • *, {0, }
  • +, {1, }
  • ?, {0, 1}
  • ., any character except newline
  • (?:x), non-capture
  • x(?=y), match x only if suffix with y
  • x(?=y), match x only if not suffix with y
  • x|y, or
  • {}, limit times
  • \d, [0-9]
  • \D, [^0-9]
  • \s, space
  • \S, non space
  • \w, [A-Za-z0-9_]
  • \W, [^A-Za-z0-9_]

source: 正则表达式 - MDN

带宽(bandwidth)

1Mbps = 1M bit per second = 1024 bit per second = 128 kb/s

二项式定理(binomial theorem)

$$
(x + y)^{n} = \sum_{k=0}^{n} {n \choose k} x^{n-k} y^{k}
$$

操作系统时间线

os-timeline.svg

0x3f3f3f3f

1
const int INF = 0x3f3f3f3f;

在数据范围不超过 $10^{9}$ 的情况下,可以作为无穷大使用,有两个好处:

  1. INF + INF 仍然是正数
  2. 可以在 memset 中使用
    1
    memset(a, 0x3f, sizeof(a))