From 007d4e3fff039c7a1aa5ad4624666c1e294bc608 Mon Sep 17 00:00:00 2001 From: ddjxd <42771977+ddjxd@users.noreply.github.com> Date: Thu, 30 Aug 2018 21:07:13 +0800 Subject: [PATCH] Update map.md --- docs/ds/stl/map.md | 54 +++++++++++++----------------------------------------- 1 file changed, 13 insertions(+), 41 deletions(-) diff --git a/docs/ds/stl/map.md b/docs/ds/stl/map.md index d410163e..c1ef3122 100644 --- a/docs/ds/stl/map.md +++ b/docs/ds/stl/map.md @@ -41,6 +41,7 @@ map mp= { 2.如果你知道了元素的下标,但是想知道这个元素是否已经存在 `map` 中,可以使用 `find` 函数。 格式:`if(mp.find()==mp.end())`,意思是如果返回的是 `map` 的末尾,因为 `map` 如果没有查找到元素,迭代器会返回末尾。 +其中 ```end()``` 返回指向map尾部的迭代器 3.如果你想知道map里全部的元素,那么就要使用迭代器了,如果你还不会,请查阅之前文章中的迭代器。 @@ -48,60 +49,31 @@ map mp= { for(iter=mp.begin();iter!=mp.end();iter++) cout<first<<" "<second<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` 常数靠得住吗? -- 2.11.0