Unverified Commit b2ba2269 authored by Shuhao Zhang's avatar Shuhao Zhang Committed by GitHub
Browse files

✏️ add multimap

parent 59b93186
Loading
Loading
Loading
Loading
+22 −0
Original line number Diff line number Diff line
@@ -129,3 +129,25 @@ mp.erase(it)
-    `empty` 如果 `map` 为空则返回 `true` ,例如 `mp.empty()`

##  `multimap` 

`map` 类似,`multimap` 是有序键值对容器,但允许多个元素拥有同一键。其搜索、插入和移除操作拥有对数复杂度。

!!! warning
    正是因为 `multimap` 允许多个元素拥有同一键的特点,`multimap` 并没有提供给出键访问其对应值的方法。

### 插入与删除操作

- 通过向 `multimap` 中插入一个类型为 `pair<Key, T>` 的值可以达到插入元素的目的,例如 `mp.insert(pair<string,int>("Alan",100));`
- `erase(x)` 删除值为 x 的 **所有** 元素,返回删除元素的个数。
- `erase(pos)` 删除迭代器为 pos 的元素,要求迭代器必须合法。
- `erase(first,last)` 删除迭代器在 $[first,last)$ 范围内的所有元素。
- `clear()` 清空 `multimap`

### 查找操作

- `count(x)` 返回 `multimap` 内键为 x 的元素数量。
- `find(x)``multimap` 内存在键为 x 的元素时会返回该元素的迭代器,否则返回 `end()`
- `lower_bound(x)` 返回指向首个不小于给定键的元素的迭代器。
- `upper_bound(x)` 返回指向首个大于给定键的元素的迭代器。
- `empty()` 返回容器是否为空。
- `size()` 返回容器内元素个数。