C++信奥赛(信息学奥林匹克竞赛)中常用的中英文术语对照表,涵盖关键字、数据结构、STL容器、算法及常见操作:
一、C++ 关键字
| 英文关键字 |
中文含义 |
示例代码 |
int |
整数 |
int a = 10; |
long long |
长整型 |
long long b = 1e18; |
double |
双精度浮点数 |
double pi = 3.14; |
bool |
布尔值 |
bool flag = true; |
char |
字符 |
char c = 'A'; |
string |
字符串 |
string s = "hello"; |
if |
如果 |
if (a > 0) {...} |
else |
否则 |
else {...} |
for |
循环 |
for (int i=0; i<n; i++) |
while |
当...时 |
while (a > 0) {...} |
do-while |
至少执行一次循环 |
do {...} while (a>0); |
switch |
开关 |
switch (x) {...} |
case |
情况 |
case 1: ... break; |
default |
默认 |
default: ... |
break |
跳出循环 |
break; |
continue |
继续下一次循环 |
continue; |
return |
返回 |
return 0; |
const |
常量 |
const int N = 100; |
static |
静态 |
static int cnt = 0; |
struct |
结构体 |
struct Node {...}; |
class |
类 |
class Solution {...}; |
public |
公有 |
public: ... |
private |
私有 |
private: ... |
protected |
保护 |
protected: ... |
friend |
友元 |
friend class A; |
inline |
内联 |
inline int add(a, b) |
namespace |
命名空间 |
namespace std {...} |
using |
使用 |
using namespace std; |
typedef |
类型定义 |
typedef int LL; |
template |
模板 |
template <typename T> |
typename |
类型名 |
typename T::value_type |
virtual |
虚函数 |
virtual void func(); |
delete |
删除 |
delete p; |
new |
新建 |
int* p = new int; |
二、数据结构
| 英文术语 |
中文名称 |
描述 |
array |
数组 |
连续存储的相同类型元素 |
stack |
栈 |
后进先出(LIFO) |
queue |
队列 |
先进先出(FIFO) |
priority_queue |
优先队列 |
元素按优先级排序 |
deque |
双端队列 |
两端均可插入删除 |
list |
链表 |
双向链表 |
vector |
向量/动态数组 |
可动态扩展的数组 |
pair |
二元组 |
存储两个不同类型元素 |
tuple |
元组 |
存储多个不同类型元素 |
set |
集合 |
元素唯一,自动排序 |
multiset |
多重集合 |
元素可重复,自动排序 |
unordered_set |
无序集合 |
元素唯一,哈希实现 |
unordered_multiset |
无序多重集合 |
元素可重复,哈希实现 |
map |
映射/字典 |
键值对,自动排序 |
multimap |
多重映射 |
键可重复,自动排序 |
unordered_map |
无序映射 |
键值对,哈希实现 |
unordered_multimap |
无序多重映射 |
键可重复,哈希实现 |
tree |
树 |
层次结构 |
binary tree |
二叉树 |
每个节点最多两个子节点 |
binary search tree |
二叉搜索树 |
左子树 < 根 < 右子树 |
AVL tree |
AVL树 |
自平衡二叉搜索树 |
red-black tree |
红黑树 |
自平衡二叉搜索树 |
heap |
堆 |
完全二叉树,常用于优先队列 |
graph |
图 |
由节点和边组成 |
adjacency matrix |
邻接矩阵 |
用二维数组表示图 |
adjacency list |
邻接表 |
用链表表示图 |
三、STL 容器与操作
| 英文操作 |
中文含义 |
示例代码 |
push_back() |
尾部插入 |
vec.push_back(10); |
push_front() |
头部插入 |
deque.push_front(10); |
pop_back() |
尾部删除 |
vec.pop_back(); |
pop_front() |
头部删除 |
deque.pop_front(); |
insert() |
插入 |
set.insert(5); |
erase() |
删除 |
vec.erase(vec.begin()); |
clear() |
清空 |
vec.clear(); |
size() |
大小 |
vec.size(); |
empty() |
判断是否为空 |
if (vec.empty()) {...} |
front() |
获取第一个元素 |
int x = deque.front(); |
back() |
获取最后一个元素 |
int x = vec.back(); |
begin() |
起始迭代器 |
auto it = vec.begin(); |
end() |
结束迭代器 |
auto it = vec.end(); |
rbegin() |
反向起始迭代器 |
auto rit = vec.rbegin(); |
rend() |
反向结束迭代器 |
auto rit = vec.rend(); |
find() |
查找 |
auto it = set.find(5); |
count() |
统计元素个数 |
int cnt = map.count(key); |
lower_bound() |
下界 |
auto it = vec.lower_bound(5); |
upper_bound() |
上界 |
auto it = vec.upper_bound(5); |
sort() |
排序 |
sort(arr.begin(), arr.end()); |
reverse() |
反转 |
reverse(vec.begin(), vec.end()); |
swap() |
交换 |
swap(a, b); |
max_element() |
最大值位置 |
auto it = max_element(arr.begin(), arr.end()); |
min_element() |
最小值位置 |
auto it = min_element(arr.begin(), arr.end()); |
accumulate() |
求和 |
int sum = accumulate(arr.begin(), arr.end(), 0); |
四、算法与常用操作
| 英文术语 |
中文名称 |
描述 |
recursion |
递归 |
函数调用自身 |
iteration |
迭代 |
循环执行 |
divide and conquer |
分治法 |
分解问题为子问题 |
dynamic programming |
动态规划 |
用子问题解优化问题 |
greedy algorithm |
贪心算法 |
每步选择最优解 |
backtracking |
回溯法 |
尝试所有可能路径 |
binary search |
二分查找 |
在有序数组中查找元素 |
depth-first search (DFS) |
深度优先搜索 |
沿路径深入遍历 |
breadth-first search (BFS) |
广度优先搜索 |
逐层遍历 |
Dijkstra's algorithm |
迪杰斯特拉算法 |
单源最短路径 |
Floyd-Warshall algorithm |
弗洛伊德算法 |
多源最短路径 |
Kruskal's algorithm |
克鲁斯卡尔算法 |
最小生成树 |
Prim's algorithm |
普里姆算法 |
最小生成树 |
topological sorting |
拓扑排序 |
有向无环图排序 |
union-find |
并查集 |
处理不相交集合合并 |
hash function |
哈希函数 |
将数据映射为固定长度 |
modulo operation |
取模运算 |
a % b |
bit manipulation |
位运算 |
按位与、或、非等操作 |
五、数学与常用概念
| 英文术语 |
中文名称 |
描述 |
prime number |
质数/素数 |
大于1且只能被1和自身整除的数 |
composite number |
合数 |
非质数的大于1的数 |
greatest common divisor (GCD) |
最大公约数 |
两数的最大公因子 |
least common multiple (LCM) |
最小公倍数 |
两数的最小公倍数 |
modular arithmetic |
模运算 |
余数运算 |
factorial |
阶乘 |
n! = 1×2×…×n |
permutation |
排列 |
从n个元素中取k个排列 |
combination |
组合 |
从n个元素中取k个组合 |
Catalan number |
卡特兰数 |
组合数学中的数列 |
Fibonacci sequence |
斐波那契数列 |
F(n) = F(n-1) + F(n-2) |
probability |
概率 |
事件发生的可能性 |
expectation |
期望值 |
随机变量的平均值 |