QuietRise 10 X 10
QuietRise:~/blog$ source "适合编程算法竞赛的 C++ STL 容器清单.sh"

QuietRise:~/blog$ printenv
CREATED_DATE = 2026-01-20
UPDATED_DATE = 2026-01-30
TAGS = 笔记
CATEGORIES = 计科

QuietRise:~/blog$ grep -lr $TAGS post
2026-01-20 适合编程算法竞赛的 C++ STL 容器清单
2026-01-23 高等数学(上)必背公式与记忆技巧整理

适合编程算法竞赛的 C++ STL 容器清单

1. 向量 (vector)

  • 构造vector<类型> arr(长度, [初值]);
  • 尾接.push_back(元素);
  • 尾删.pop_back();
  • 访问arr[下标];
  • 获取长度.size();
  • 清空.clear();
  • 判空.empty();
  • 改变长度.resize(新长度, [默认值]);
  • 取尾部元素.back();
  • 头迭代器.begin();
  • 尾迭代器.end();
  • 反向头迭代器.rbegin();
  • 反向尾迭代器.rend();

2. 栈 (stack)

  • 构造stack<类型> stk;
  • 进栈.push(元素);
  • 出栈.pop();
  • 取栈顶.top();
  • 查看大小.size();
  • 判空.empty();

3. 队列 (queue)

  • 构造queue<类型> que;
  • 进队.push(元素);
  • 出队.pop();
  • 取队首.front();
  • 取队尾.back();
  • 查看大小.size();
  • 判空.empty();

4. 优先队列 (priority_queue)

  • 构造priority_queue<类型, 容器, 比较器> pque;
  • 进堆.push(元素);
  • 出堆.pop();
  • 取堆顶.top();
  • 查看大小.size();
  • 判空.empty();

5. 集合 (set / multiset)

  • 构造set<类型, 比较器> st;
  • 插入.insert(元素);
  • 删除.erase(元素);
  • 查找.find(元素);
  • 判断是否存在.count(元素);
  • 查看大小.size();
  • 清空.clear();
  • 判空.empty();
  • 迭代器访问.begin(); / .end();

6. 映射 (map)

  • 构造map<键类型, 值类型, 比较器> mp;
  • 增/改/查mp[键] = 值;
  • 查找.find(键);
  • 删除.erase(键);
  • 判断是否存在.count(键);
  • 查看大小.size();
  • 清空.clear();
  • 判空.empty();
  • 迭代器访问.begin(); / .end();

7. 字符串 (string)

  • 构造string(长度, 初值);
  • C风格转换.c_str();
  • 访问/修改字符s[下标];
  • 判同==;
  • 连接+;
  • 尾接+=;
  • 取子串.substr(起始下标, 子串长度);
  • 查找.find(字符串, 起始下标);
  • 数值转字符串to_string(变量);
  • 字符串转数值stoi(); / stoll(); / stof(); / stod(); / stold();

8. 二元组 (pair)

  • 构造pair<类型1, 类型2> pr;
  • 赋值pr = {值1, 值2};
  • 取第一值pr.first;
  • 取第二值pr.second;
  • 判同==;

笔记整理自blibili 算法竞赛常用STL