- 分享
附录:跨等级 C++ 必背速查表
- @ 2026-8-14 0:43:20
本附录是为了“记忆背诵”统一整理。部分条目属于 【辅助补充】,用于防止学生只记零散考点而缺少 C++ 整体知识框架。
A. GESP 高频 C++ 关键字表
A1. 必须高频识别
| 类别 | 关键字 | 用途 |
|---|---|---|
| 基本类型 | bool char int long float double void |
类型声明 |
| 类型修饰 | signed unsigned short const |
类型/只读修饰 |
| 分支 | if else switch case default |
条件控制 |
| 循环 | for while do |
循环控制 |
| 跳转 | break continue return goto |
改变控制流 |
| 结构/类 | struct class public private protected |
复合类型/OOP |
| 异常 | try catch throw |
异常处理 |
| 其他 | sizeof using namespace true false |
常见语法 |
A2. 【辅助补充】常见但 GESP 不一定逐个考查的关键字
auto、static、extern、volatile、enum、typedef、new、delete、this、virtual、friend、operator、template、typename、nullptr。
A3. 高频“不是关键字”的名字
cin、cout、endl、string、vector、queue、stack、map、unordered_map、sort、max、min、sqrt 都不是 C++ 关键字,它们是对象、类型、容器或函数名。
B. 常用转义字符
| 写法 | 含义 |
|---|---|
\n |
换行 |
\t |
制表符 |
\\ |
反斜杠 |
\' |
单引号 |
\" |
双引号 |
\0 |
空字符,数值为 0 |
C. 运算符优先级速查(由高到低,保留 GESP 高频部分)
| 级别 | 运算符 | 说明 |
|---|---|---|
| 1 | () [] |
括号、下标 |
| 2 | ! ~ ++ -- 一元 + - * & |
一元运算 |
| 3 | * / % |
乘除模 |
| 4 | + - |
加减 |
| 5 | << >> |
位移 |
| 6 | < <= > >= |
关系 |
| 7 | == != |
相等性 |
| 8 | & |
按位与 |
| 9 | ^ |
按位异或 |
| 10 | | |
按位或 |
| 11 | && |
逻辑与 |
| 12 | || |
逻辑或 |
| 13 | ?: |
三目 |
| 14 | = += -= *= /= %= ... |
赋值 |
最稳规则:不确定优先级时主动加括号。
D. 常用头文件
| 头文件 | 常用内容 |
|---|---|
<iostream> |
cin、cout |
<cstdio> |
scanf、printf、freopen |
<cmath> |
sqrt、三角/对数/指数函数 |
<algorithm> |
max、min、sort、reverse |
<string> |
string |
<vector> |
vector |
<queue> |
queue、priority_queue |
<stack> |
stack |
<unordered_map> |
unordered_map |
<unordered_set> |
unordered_set |
<fstream> |
文件流 |
<cctype> |
toupper、tolower、isdigit 等 |
<cstdlib> |
rand、srand、部分 abs |
【辅助补充】竞赛环境常见 #include <bits/stdc++.h> 可以一次包含大量标准库头文件,但它不是 ISO C++ 标准头文件;正式理解仍应知道常用头文件来源。
E. 常用字符判断函数【辅助补充】
| 函数 | 判断/转换 |
|---|---|
isdigit(c) |
是否数字字符 |
isalpha(c) |
是否英文字母 |
islower(c) |
是否小写 |
isupper(c) |
是否大写 |
tolower(c) |
转小写 |
toupper(c) |
转大写 |
F. 常用 STL 容器速查【辅助补充】
| 容器 | 特点 | 高频操作 |
|---|---|---|
vector |
动态数组 | push_back、pop_back、size |
string |
字符串 | size、substr、find |
stack |
后进先出 | push、pop、top |
queue |
先进先出 | push、pop、front |
priority_queue |
每次取优先级最高元素 | push、pop、top |
unordered_set |
哈希集合 | insert、find、erase |
unordered_map |
哈希键值表 | []、find、erase |
G. 常见算法“看到什么想到什么”
| 题目特征 | 第一反应 |
|---|---|
| 有序数组查值/边界 | 二分 |
| 答案越大越容易/越难满足 | 二分答案 |
| 所有可能方案且规模小 | 枚举/DFS |
| 无权最短步数 | BFS |
| 网格连通块 | DFS/BFS/Flood Fill |
| 重复子问题 + 最优子结构 | DP |
| 每一步局部选择可证明最优 | 贪心 |
| 单源非负边最短路 | Dijkstra |
| 多源全点对最短路且点数较小 | Floyd |
| 无向连通图最小总连接成本 | MST(Kruskal/Prim) |
| 多次向上跳祖先 | 倍增 |
| 快速存在性/计数 | 哈希表 |
H. 常见数学公式总表
| 内容 | 公式 |
|---|---|
等差第 n 项 |
|
等差前 n 项和 |
|
| 排列 | |
| 组合 | |
| 组合递推 | |
| GCD 递推 | |
| 三角形面积 | |
| 圆面积 | |
| 弧度换算 | |
二叉树第 i 层最大节点数 |
|
深度 k 二叉树最大节点数 |
|
| 叶子与度 2 节点 | |
| Floyd 转移 | |
| LCM |
|
I. 复杂度判断经验表【辅助补充】
这是竞赛常用估算经验,不是 GESP 官方固定阈值;实际还受常数、语言、时限影响。
n 大致规模 |
常见可考虑复杂度 |
|---|---|
| / 部分 | |
| 可能可行 | |
| 常见 | |
| 常见 | |
| 更偏 / 低常数 |
J. 读代码题统一检查顺序
- 先写出变量初值。
- 判断数据类型:是否整数除法、溢出、字符 ASCII。
- 明确循环范围:起点、终点、是否包含边界。
- 遇到
break/continue/return立即标记控制流变化。 - 遇到
++i/i++观察它是否参与表达式。 - 遇到位运算先写二进制。
- 遇到递归先找终止条件,再画 2~3 层调用。
- 遇到 DP 先写状态含义,再代入转移。
- 遇到图算法先确认有向/无向、权值正负、点边规模。
K. 全阶段最终背诵目标
学生完成八级后,至少应能不看资料说明以下内容:
- C++ 基本类型、关键字与输入输出。
- 运算符类别和常见优先级。
- ASCII 关键编码与字符转换。
- 原反补码、进制、位运算。
- 数组、字符串、函数、指针/引用、结构体。
- 排序、二分、递归、分治、贪心。
- GCD、筛法、唯一分解、高精度。
- 栈、队列、树、DFS/BFS、简单与复杂 DP。
- 图的存储、Flood Fill、哈希表。
- 计数、排列组合、杨辉三角、倍增。
- MST、Dijkstra、Floyd。
- 主要算法复杂度、空间复杂度与常用优化方向。
L. ASCII 可打印字符完整表(十进制 32~126)
重点仍然是背 32、48、65、97 四个锚点,其余通过连续性推导。
| Dec | Char | Dec | Char | Dec | Char | Dec | Char |
|---|---|---|---|---|---|---|---|
| 32 | SPACE |
33 | ! |
34 | " |
35 | # |
| 36 | $ |
37 | % |
38 | & |
39 | ' |
| 40 | ( |
41 | ) |
42 | * |
43 | + |
| 44 | , |
45 | - |
46 | . |
47 | / |
| 48 | 0 |
49 | 1 |
50 | 2 |
51 | 3 |
| 52 | 4 |
53 | 5 |
54 | 6 |
55 | 7 |
| 56 | 8 |
57 | 9 |
58 | : |
59 | ; |
| 60 | < |
61 | = |
62 | > |
63 | ? |
| 64 | @ |
65 | A |
66 | B |
67 | C |
| 68 | D |
69 | E |
70 | F |
71 | G |
| 72 | H |
73 | I |
74 | J |
75 | K |
| 76 | L |
77 | M |
78 | N |
79 | O |
| 80 | P |
81 | Q |
82 | R |
83 | S |
| 84 | T |
85 | U |
86 | V |
87 | W |
| 88 | X |
89 | Y |
90 | Z |
91 | [ |
| 92 | \\ |
93 | ] |
94 | ^ |
95 | _ |
| 96 | ` | 97 | a |
98 | b |
99 | c |
| 100 | d |
101 | e |
102 | f |
103 | g |
| 104 | h |
105 | i |
106 | j |
107 | k |
| 108 | l |
109 | m |
110 | n |
111 | o |
| 112 | p |
113 | q |
114 | r |
115 | s |
| 116 | t |
117 | u |
118 | v |
119 | w |
| 120 | x |
121 | y |
122 | z |
123 | { |
| 124 | | | 125 | } |
126 | ~ |
||
ASCII 连续区间
- 数字:
'0'..'9'对应 48..57。 - 大写字母:
'A'..'Z'对应 65..90。 - 小写字母:
'a'..'z'对应 97..122。 - 同一字母大小写 ASCII 差值为 32(ASCII 环境)。
0 条评论
目前还没有评论...