跳转至

关联式容器

1 集合 set

  • 头文件:#include <set>
  • 定义:set<int> s;
  • 插入:s.insert(x);
  • 删除(按元素):s.erase(x);
  • 删除(按地址):s.erase(it);
  • 查找:s.find(x);,查询x在集合中的地址,如果这个数不存在,返回 s.end()
  • 查询不小于 \(x\) 的最小数的地址:s.lower_bound(x);
  • 查询不大于 \(x\) 的最大数的地址:s.upper_bound(x);
  • 大小:s.size();
  • 判空:s.empty();
  • 遍历:
    for (int x : s) { /* ... */ }
    

2 映射表 map

  • 头文件:#include <map>
  • 定义:map<A, B> m;,创建下标类型为 A,元素类型为 B 的映射表。
  • 插入/赋值:m[key] = value;
  • 查找:m.find(key) != m.end();
  • 删除:m.erase(key);
  • 大小:m.size();
  • 判空:m.empty();
  • 遍历:
    for (auto &p : m) {
        int key = p.first, value = p.second;
        // ...
    }
    

发现错误?想一起完善? 在 GitHub 上编辑此页

本文档内容作为个人算法笔记整理,代码模板可按需要参考和修改。