掌握常见的容器的用法

最最基础的 STL 用法死记硬背下来**,不然你看任何题解都像看天书。

我现在的情况就是:
算法思路能懂,但 C++ 容器怎么用完全没概念,所以觉得别人代码很玄乎。

不用系统学 STL 全书,只学刷题刚需的那一点点就够了,


一、你只需要掌握 4 个东西

刷题 99% 只用这 4 个:

  1. vector(动态数组)
  2. queue(队列,BFS 专用)
  3. stack(栈,DFS 非递归专用)
  4. unordered_map(哈希表,记录值用)

下面每个只教最核心、必须会的用法,多一个都不讲。


二、vector 必须会的 6 个操作

cpp 复制代码
vector<int> v;
  1. 尾部添加
cpp 复制代码
v.push_back(1);
  1. 访问元素(像数组一样)
cpp 复制代码
int x = v[0];
  1. 看大小
cpp 复制代码
int sz = v.size();
  1. 判断空
cpp 复制代码
if (v.empty()) { ... }
  1. 清空
cpp 复制代码
v.clear();
  1. 遍历
cpp 复制代码
for (int i = 0; i < v.size(); i++)
    cout << v[i];

就这些,没了。


三、queue 必须会的 5 个操作(你那道题全靠它)

cpp 复制代码
queue<int> q;
  1. 入队(放尾巴)
cpp 复制代码
q.push(1);
  1. 看队头(最关键)
cpp 复制代码
int front = q.front();
  1. 删除队头
cpp 复制代码
q.pop();
  1. 判断空
cpp 复制代码
while (!q.empty()) { ... }
  1. 大小
cpp 复制代码
q.size();

固定句式(背下来)

cpp 复制代码
while (!q.empty()) {
    auto now = q.front();
    q.pop();

    // 处理 now

    q.push(子元素);
}

你那道题的 front() pop() 就是这个固定句式,不是技巧,是模板


四、stack 必须会的 5 个操作

cpp 复制代码
stack<int> st;
  1. 入栈
cpp 复制代码
st.push(1);
  1. 看栈顶
cpp 复制代码
int top = st.top();
  1. 删除栈顶
cpp 复制代码
st.pop();
  1. 判空
cpp 复制代码
st.empty();
  1. 大小
cpp 复制代码
st.size();

五、unordered_map 必须会的 3 个操作

cpp 复制代码
unordered_map<int, int> mp;
  1. 存值
cpp 复制代码
mp[key] = value;
  1. 取值
cpp 复制代码
int val = mp[key];
  1. 判断有没有这个 key
cpp 复制代码
if (mp.count(key)) { ... }

你那道题就是用它存「深度 → 最右节点值」。


六、你现在的核心问题一句话说清

你不是不会算法,

没见过 STL 的固定写法,所以觉得别人代码很巧妙。

其实:

  • BFS = queue + front + pop
  • DFS非递归 = stack + top + pop
  • 存结果 = vector
  • 快速查表 = unordered_map

所有算法题解,都是这几句拼起来的。


这些都是刷算法中最基础的一些操作,掌握之后刷题目的时候才不会懵逼.,有时候其实算法里涉及到的都是一些基础的库函数.

相关推荐
李可以量化32 分钟前
Python之如何做出交易日历(上)
人工智能·算法·qmt·量化 qmt ptrade
会编程的土豆35 分钟前
【数据结构与算法】新二叉树
数据结构·算法·二叉树
jerryinwuhan41 分钟前
基于结构可控性的给水管网传感器布点选择算法
数据库·算法
南宫萧幕41 分钟前
车辆控制基础:从 EKF 状态估计到非线性 MPC 轨迹跟踪的闭环实现
算法·matlab·汽车·控制·pid
点PY42 分钟前
《高质量的实时直接体绘制算法》论文精读
算法
X journey44 分钟前
机器学习进阶(24):主成分分析PCA
人工智能·算法·机器学习
MediaTea1 小时前
AI 术语通俗词典:精确率(分类)
人工智能·算法·机器学习·分类·数据挖掘
Morwit1 小时前
【力扣hot100】 416. 分割等和子集
数据结构·c++·算法·leetcode·职场和发展
ECT-OS-JiuHuaShan1 小时前
朱梁整体论,万有代谢元,矛盾因果网,人间正道是沧桑
人工智能·科技·算法·机器学习·拓扑学
qeen871 小时前
【算法笔记】二分查找与二分答案
c语言·c++·笔记·学习·算法·二分