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

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

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

适合编程算法竞赛的 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