OSDN Git Service

feat(map): 添加遍历操作的时间复杂度
authorMargatroid <i@margatroid.xyz>
Sun, 11 Aug 2019 07:40:45 +0000 (15:40 +0800)
committerMargatroid <i@margatroid.xyz>
Sun, 11 Aug 2019 07:40:45 +0000 (15:40 +0800)
docs/lang/csl/associative-container.md

index e58e313..9d3de9d 100644 (file)
@@ -1,8 +1,8 @@
-##  `set` 
+##  `set`
 
-##  `multiset` 
+##  `multiset`
 
-##  `map` 
+##  `map`
 
  `map` 是有序键值对(Attribute–value pair)容器,它的元素的键是唯一的。搜索、移除和插入操作拥有对数复杂度。 `map` 通常实现为红黑树。
 
@@ -23,8 +23,8 @@ map<string, int> mp;
 
 ### 添加元素
 
-1.  直接赋值,例如 `mp["Tom"]=0` 
-2.  通过插入一个类型为 `pair<Key, T>` 的值,例如 `mp.insert(pair<string,int>("Alan",100));` 
+1.  直接赋值,例如 `mp["Tom"]=0`
+2.  通过插入一个类型为 `pair<Key, T>` 的值,例如 `mp.insert(pair<string,int>("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`