2.如果你知道了元素的下标,但是想知道这个元素是否已经存在 `map` 中,可以使用 `find` 函数。
格式:`if(mp.find()==mp.end())`,意思是如果返回的是 `map` 的末尾,因为 `map` 如果没有查找到元素,迭代器会返回末尾。
+其中 ```end()``` 返回指向map尾部的迭代器
3.如果你想知道map里全部的元素,那么就要使用迭代器了,如果你还不会,请查阅之前文章中的迭代器。
for(iter=mp.begin();iter!=mp.end();iter++)
cout<<iter->first<<" "<<iter->second<<endl;
```
-其中,`iter->first` 是指的索引,例如 `ddjxd`,而 `iter->second` 是下标。
+
+其中 ```end()``` 返回指向map尾部的迭代器
+
+`iter->first` 是 `map` 索引,例如 `ddjxd`,而 `iter->second` 是下标。
当然,如果你想删除 `ddjxd` 这个元素,那么就可以在循环里加入:
```cpp
-if(i->first=="ddjxd") mp.erase(i);
+if(i->first=="ddjxd") mp.erase(i);//
```
-如果你想清空所有的元素,可以直接`mp.clear`
+如果你想清空所有的元素,可以直接`mp.clear()`
- 其他
-我们刚才介绍了最常用的,下面是全部的:
-
-```
-
- begin() 返回指向map头部的迭代器
-
- clear() 删除所有元素
-
- count() 返回指定元素出现的次数
-
- empty() 如果map为空则返回true
-
- end() 返回指向map末尾的迭代器
-
- equal_range() 返回特殊条目的迭代器对
+我们刚才介绍了最常用的,下面是其他比较常用的:
- erase() 删除一个元素
+- `count()` 返回指定元素出现的次数 ,例如 `mp.count()`
- find() 查找一个元素
+- `swap` 可以交换两个 `map` ,例如 `swap(m1,m2)`
- get_allocator() 返回map的配置器
+- `size()` 返回 `map` 中元素的个数
+
+- `empty()` 如果 `map` 为空则返回 `true`,例如 `mp.empty()`。
- insert() 插入元素
-
- key_comp() 返回比较元素key的函数
-
- lower_bound() 返回键值>=给定元素的第一个位置
-
- max_size() 返回可以容纳的最大元素个数
-
- rbegin() 返回一个指向map尾部的逆向迭代器
-
- rend() 返回一个指向map头部的逆向迭代器
-
- size() 返回map中元素的个数
-
- swap() 交换两个map
-
- upper_bound() 返回键值>给定元素的第一个位置
-
- value_comp() 返回比较元素value的函数
-```
### `map` 常数靠得住吗?