From: Margatroid Date: Sun, 11 Aug 2019 07:40:45 +0000 (+0800) Subject: feat(map): 添加遍历操作的时间复杂度 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=12eb48be05bd3993950b2c1fb650d46e4fd44748;p=oi-wiki%2Fmain.git feat(map): 添加遍历操作的时间复杂度 --- diff --git a/docs/lang/csl/associative-container.md b/docs/lang/csl/associative-container.md index e58e313c..9d3de9d6 100644 --- a/docs/lang/csl/associative-container.md +++ b/docs/lang/csl/associative-container.md @@ -1,8 +1,8 @@ -## `set` +## `set` -## `multiset` +## `multiset` -## `map` +## `map` `map` 是有序键值对(Attribute–value pair)容器,它的元素的键是唯一的。搜索、移除和插入操作拥有对数复杂度。 `map` 通常实现为红黑树。 @@ -23,8 +23,8 @@ map mp; ### 添加元素 -1. 直接赋值,例如 `mp["Tom"]=0` -2. 通过插入一个类型为 `pair` 的值,例如 `mp.insert(pair("Alan",100));` +1. 直接赋值,例如 `mp["Tom"]=0` +2. 通过插入一个类型为 `pair` 的值,例如 `mp.insert(pair("Alan",100));` 3. 使用 `initializer_list` : ```cpp @@ -51,6 +51,8 @@ for (auto &i : mp) { } ``` +使用迭代器遍历大小为 $n$ 的 `map` 的时间复杂度是 $O(n)$。 + ### 删除元素 如果你想删除 `Tom` 这个元素,则可以利用 `find` 函数找到 `Tom` ,然后再 `erase` 如下 @@ -61,7 +63,7 @@ it = mp.find("Tom"); mp.erase(it) ``` -如果你想清空所有的元素,可以直接 `mp.clear()` +如果你想清空所有的元素,可以直接 `mp.clear()` ### 其他函数 @@ -70,4 +72,4 @@ mp.erase(it) - `size` 返回 `map` 中元素的个数。 - `empty` 如果 `map` 为空则返回 `true` ,例如 `mp.empty()` 。 -## `multimap` +## `multimap`