OSDN Git Service

fix
authorXeonacid <h.dwwwwww@gmail.com>
Thu, 30 Aug 2018 09:16:19 +0000 (17:16 +0800)
committerGitHub <noreply@github.com>
Thu, 30 Aug 2018 09:16:19 +0000 (17:16 +0800)
docs/ds/stl/map.md

index f94c5b0..da8f19c 100644 (file)
@@ -1,39 +1,39 @@
-### ```map``` 是啥鬼?
+### `map` 是啥鬼?
 
 当你在写程序的时候,可能需要存储一些信息,例如存储学生姓名对应的分数,例如:```ddjxd 0```,```Ir1d 100```,```siyuan 100```,```yyfcpp 100```。
 但是由于数组下标只能为非负整数,所以无法用姓名来存储,这个时候最简单的办法就是使用$STL$的$map$了!
 
-```map``` 可任意类型为下标,下面是 ```map``` 的模型:
-```
-```map <类型名,类型名> 你想给map起的名字```
+`map` 可任意类型为下标,下面是 `map` 的模型:
+```cpp
+map <类型名,类型名> 你想给map起的名字
 ```
 其中两个类型名第一个是数组的下标(索引),第二个是对应的元素。例如上面的例子,我们可以这样的存储:
-```
+```cpp
 map <string,int> mp
 ```
 是不是感觉很神奇?
 
-### ```map```  具体怎么使用?
+### `map`  具体怎么使用?
 
-- ```map``` 添加元素
+- `map` 添加元素
 
-1.直接存,例如```mp["ddjxd"]=0```
-2.通过插入,例如```mp.insert(pair<string,int>,"siyuan",100));```
+1.直接存,例如 `mp["ddjxd"]=0`
+2.通过插入,例如 `mp.insert(pair<string,int>("siyuan",100));`
 
-- ```map``` 查找删除元素
+- `map` 查找删除元素
 
-1.在你知道查找元素是啥的时候直接来就可以了,例如:```int grade=mp["ddjxd"]```
-2.如果你知道了元素的下标,但是想知道这个元素是否已经存在```map```中,可以使用```find```函数。
-格式:```if(mp.find()==mp.end())```,意思是如果返回的是```map```的末尾,因为```map```如果没有查找到元素,迭代器会返回末尾。
+1.在你知道查找元素是啥的时候直接来就可以了,例如:`int grade=mp["ddjxd"]`
+2.如果你知道了元素的下标,但是想知道这个元素是否已经存在 `map` 中,可以使用 `find` 函数。
+格式:`if(mp.find()==mp.end())`,意思是如果返回的是 `map` 的末尾,因为 `map` 如果没有查找到元素,迭代器会返回末尾。
 3.如果你想知道map里全部的元素,那么就要使用迭代器了,如果你还不会,请查阅之前文章中的迭代器。
-```
-for(iter=mp.begin();iter!=mp.end();iter++) {
+```cpp
+for(iter=mp.begin();iter!=mp.end();iter++)
         cout<<iter->first<<" "<<iter->second<<endl;
 ```
-其中,```iter->first``` 是指的索引,例如 ```ddjxd```,而 ```iter->second``` 是下标。
+其中,`iter->first` 是指的索引,例如 `ddjxd`,而 `iter->second` 是下标。
 
-当然,如果你想删除 ```ddjxd``` 这个元素,那么就可以在循环里加入:
-```
+当然,如果你想删除 `ddjxd` 这个元素,那么就可以在循环里加入:
+```cpp
 if(i->first=="ddjxd") mp.erase(i);
 ```
 
@@ -82,14 +82,14 @@ if(i->first=="ddjxd") mp.erase(i);
      value_comp()     返回比较元素value的函数
 ```
 
-### ```map``` 常数靠得住吗?
+### `map` 常数靠得住吗?
 
-一般情况下是可以的。无论查询,插入,删除的复杂度都是$O(logN)$,遍历是$O(N)$。
+一般情况下是可以的。无论查询,插入,删除的复杂度都是 $O(logN)$,遍历是 $O(N)$。
 
 不过有的时候不会满足啊!我只想查询元素,插入元素,但是时间不够咋办?请往下看!
 
-### 更快:基于 ```Hash``` 实现的 ```map```!
+### 更快:基于 `Hash` 实现的 `map`!
 
-这个```map```的名字就是```unordered_map```了,它的查询,插入,删除的复杂度几乎是$O(1)$级别(不过最坏会达到O(N)$)的!
+这个 `map` 的名字就是 `unordered_map` 了,它的查询,插入,删除的复杂度几乎是 $O(1)$ 级别(不过最坏会达到 $O(N)$)的!
 
 不过它的遍历速度会很慢,慢到至少$O(N)$。