C++ 编程语法完全指南
从零开始,系统学习 C++ 编程语法。每一章都配有详细讲解与代码示例,适合中学生自学或课堂教学使用。
📘 语法文档 · 12 章
🧮 算法文档 · 18 模块
🚧 附录筹备中
基础语法
01
第一章
基础框架
Hello World · 程序结构 · 编译过程四步骤
→
02
第二章
变量与数据类型
数据类型 · 算术运算符 · 类型转换 · 数据编码
→
03
第三章
输入与输出
cin / cout · 格式化输出 · 文件 I/O
→
04
第四章
分支结构
if / else · switch · 三元运算符
→
05
第五章
循环结构
for · while · do-while · break & continue
→
06
第六章
数组
一维数组 · 二维数组 · 字符串数组
→
07
第七章
位运算
AND · OR · XOR · 移位 · 竞赛技巧
→
08
第八章
函数
定义与调用 · 递归 · 内联函数
→
09
第九章
指针与引用
指针基础 · 引用传参 · 动态内存
→
10
第十章
结构体
struct 定义 · 嵌套结构 · 自定义排序
→
进阶语法
🚧 进行中
11
第十一章
STL 标准模板库
序列容器 · 容器适配器 · 关联容器 · 实用类型 · STL 算法 —— 点击下方任意专题卡片直达对应页面
⌄
🧰
STL 是什么?通用操作有哪些?
先导课 · 三大组件(容器 / 算法 / 迭代器) · 所有容器共享的通用接口
→
序列容器
按顺序存放元素
string
字符串
vector
动态数组
list
双向链表
deque
双端队列
容器适配器
限制访问方式的"包装"容器
stack
栈 · 后进先出
queue
队列 · 先进先出
priority_queue
优先队列
关联容器
按键查找,自动排序或哈希
map
有序映射
unordered_map
无序映射
set
有序集合
实用类型
打包数据的小工具
pair
打包两个值
bitset
位集合
STL 算法
排序、查找、统计等通用工具
排序与排列
sort · stable_sort · next_permutation
查找与计数
find · binary_search · lower_bound
复制替换移动
copy · fill · replace · unique
数值运算
accumulate · partial_sum · iota
集合运算
set_union · set_intersection
条件判断遍历
all_of · any_of · for_each
12
第十二章
即将推出
类与面向对象编程
class · 封装 · 继承 · 多态
算法文档
🚧 进行中
A
算法专题
持续更新中
算法文档
18 个模块,从数学基础到动态规划、图论进阶 · 点击下方任意专题卡片直达对应页面
⌄
01
数学基础
数位、质数、约数与进制的基础工具
数位拆分
取出每一位数字
回文判断
正读反读是否相同
质数判断
判断是否为素数
最大公约数
欧几里得算法
最小公倍数
借助最大公约数
进制转换
不同进位制互转
快速幂
对数时间算幂
线性筛素数
批量筛出素数
02
基础算法思想
枚举、标记、模拟的入门思路
枚举法
逐一尝试所有可能
数组标记法
用数组记录状态
模拟法
照题意一步步执行
03
简单排序
用循环实现的经典排序方法
冒泡排序
相邻交换冒泡
选择排序
每轮选出最小值
插入排序
像理牌一样插入
桶排序
用空间换时间
04
贪心算法
每一步都选当前最优的策略
贪心算法
区间调度 · 部分背包
05
区间处理技巧
快速求区间和与区间修改
前缀和
O(1) 查询区间和
差分
区间修改的逆运算
二维前缀和
矩形区域求和
06
单调栈与单调队列
维护单调性,省去重复比较
单调栈
找最近更大/更小值
单调队列
滑动窗口最值
07
双指针与二分查找
在有序数据里快速定位
双指针
两个下标协同移动
二分查找
有序数组对数查找
08
递推与递归
从前一步推出下一步,或反过来拆解
递推
用前一步推出下一步
递归
函数调用自身
09
分治排序
递归思想在排序中的实战
快速排序
分治 + partition
归并排序
分治 + 合并
10
并查集
管理元素分组与连通关系
并查集
Union-Find · 路径压缩
11
搜索基础
用递归遍历所有可能的选择
DFS 深度优先搜索
一条路走到底
回溯
试错后撤销选择
剪枝优化
提前排除无效分支
记忆化搜索
缓存已算过的结果
12
动态规划基础
拆解子问题,避免重复计算
线性 DP
LIS · LCS
背包问题
01 · 完全 · 多重
13
搜索进阶
按层扩展与双向夹击的搜索优化
BFS 广度优先搜索
一层一层扩展
双向 BFS
两端同时搜索
迭代加深搜索 IDDFS
限定深度逐步加深
A* 算法
启发式搜索
IDA* 算法
IDDFS + A* 结合
14
图论基础
图的存储、最短路与生成树
图的存储
邻接矩阵 · 邻接表
Floyd 最短路
三重循环求最短路
Dijkstra 最短路
贪心 + 优先队列
Kruskal 最小生成树
按边权排序贪心
Prim 最小生成树
从点扩展贪心
拓扑排序
有向无环图排序
15
树状数组与线段树
高效维护区间信息的数据结构
离散化
压缩数值范围
树状数组
高效维护前缀和
线段树
区间查询与修改
16
字符串算法
字符串匹配与前缀处理技巧
字符串哈希
字符串转数字比较
KMP 字符串匹配
高效模式匹配
Trie 字典树
高效处理字符串前缀
17
动态规划进阶
区间、状态压缩与树上的 DP
区间 DP
在区间上转移
状压 DP
二进制表示状态
树形 DP
在树上转移
数位 DP
按数位统计
18
拓展专题
树上算法与博弈论的延伸内容
LCA 最近公共祖先
树上倍增
博弈论
Nim 游戏 · SG 函数
数论进阶
扩展欧几里得 · 逆元
附录
🚧 筹备中
🔧
附录
即将推出
常见错误与解决方法
编译错误 · 运行时错误 · 调试技巧 · 常见坑汇总