可变数组vector函数和用法
- v.capacity():返回重新分配空间前可容纳的最大元素数量
- v.reserve(n):扩大容量为 n
- v.at(i):返回索引 i 所标识的元素,对 i 会越界检查
- v[i]:返回索引 i 所标识的元素,和数组用法几乎完全相同,对 i 不越界检查
- v.front():返回第一个元素,不检查第一个元素是否存在
- v.back():返回最后一个元素,不检查最后一个元素是否存
- v.push_back(e):在尾部添加一个元素 e
- v.insert(pos, e):在 pos 位置插入元素 e ,并返回新元素位置
- v.insert(pos, n, e):在 pos 位置插入 n 个元素 e
- v.insert(pos, v1.begin, v1.end):在 pos 位置插入区间 v1[begin, end) 的元素
- v.pop_back():移除最后一个元素但不返回最后一个元素
- v.erase(pos):删除 pos 位置的元素,返回下一个元素的位置
- v.erase(begin, end):删除区间[begin, end)内所有元素,返回下一个元素的位置
- v.clear():移除所有元素,清空容器
- v.resize(num):将元素数量改为 num
- v.resize(num, e):将元素数量改为 num ,默认值是 e
队列queue函数和用法
- queue<int> q; 创建一个空队列
- push(e):向队列末尾添加元素 e
- pop():从队列首部移除元素(不返回元素的值)
- front():获取队首元素(不移除)
- back():获取队尾元素(不移除)
- empty():判断队列是否为空
- size():返回队列中的元素个数
栈stack函数和用法
- stack<int> s; 创建一个空栈
- push(e):向栈顶添加元素 e
- pop():从栈顶移除元素(不返回元素的值)
- top():获取栈顶元素(不移除)
- empty():判断栈是否为空
- size():返回栈中的元素个数
链表list函数和用法
- l.front():返回第一个元素。不检查第一个元素是否存在
- l.back():返回最后一个元素。不检查最后一个元素是否存在
- l.insert(pos, e):在 pos 位置插入元素 e ,并返回新元素位置
- l.insert(pos, n, e):在 pos 位置插入 n 个元素 e
- l.insert(pos, begin, end):在 pos 位置插入区间[begin, end)内所有元素
- l.push_back(e):在尾部添加一个元素 e
- l.push_front(e):在头部添加一个元素 e
- l.pop_back():移除最后一个元素,没有返回值
- l.pop_front():移除第一个元素,没有返回值
- l.erase(pos):删除 pos 位置的元素,返回下一个元素的位置
- l.erase(begin, end):删除区间[begin, end)内所有元素,返回下一个元素的位置
- l.remove(val):移除所有值为 val 的元素
- l.remove_if(op):移除所有满足“op(val)==true”的元素
- l.clear():移除所有元素,清空容器
- l.resize(num):将元素数量改为 num
- l.resize(num,e):将元素数量改为 num
- l.unique():移除重复元素
- l.unique(op):移除满足 “op(val) == true” 的重复元素
- l1.splice(pos, l2):将 l2 内的所有元素转移到 l1 的迭代器之前
- l1.splice(pos, l2, l2pos):将 l2 内 l2pos 所指元素转移到 l1 内的 pos 之前
- l1.splice(pos, l2, l2begin, l2end):将 l2 内[l2begin, l2end) 区间内所有元素转移到 l1 的pos之前
- l.sort():以 operator < 为准则对所有元素排序。
- l.sort(op):以 op(定义“小于”关系)为准则对所有元素排序
- l1.merge(l2):假设 l1 和 l2 都已排序,将 l2 全部元素转移到 l1 并保证合并后仍是有序表
- l.reverse():将所有元素反序
集合set函数和用法
- 内部升序排列:set< int, less > s;
- 内部降序排列:set< int, greater > s;
- s.count(10):返回 s 中值为 10 的具体数目
- s.empty():判断集合是否为空集
- s.size():返回集合的元素数量
- s.insert(e):将 e 插入到 set 中。返回值是一个 pair
- s.insert(begin, end):将区间[begin, end)中的值插入到 s 中
- s.erase(e):将 e 删除
- s.erase(pos):将 pos 处的元素删除
- s.erase(begin, end):将[begin, end)处的元素删除
键值对map函数和用法
- m.at(3) 或 m[3]:返回一个引用,指向键为 3(key = 3)的对应值
- m.count(3):返回 s 中键为 3 的具体数目,但对于 map 来说,返回值不是 0 就是 1
- m.find(3):返回指向键为 3 的元素的迭代器,如果不存在,则返回 m.end()
- m.empty():判断映射是否为空映射
- m.size():返回映射的元素数量
- m.insert(pair):将元素插入到 map 中。pair 的 first 是键,second 是值。
可以定义一个 pair:pair<int, string> p(10, "Hello");
也可以用 make_pair() 建立一个 pair:make_pair(10, "Hello");
- m.insert(begin, end):将区间[begin, end)中的值插入到 s 中,该区间应该是 map 类型的
- m.erase(e):将键为 e 的元素删除
- m.erase(pos):将 pos 处的元素删除
- m.erase(begin, end):将[begin, end)处的元素删除
—— 本文来自火龙信奥(义乌睿码科技):义乌青少年信息学奥赛与编程教育平台,专注 CSP-J/S、NOIP、GESP 竞赛培训,线上线下融合教学,助力编程升学。网址:hlcoding.com