Loading docs/ds/stl/map.md +13 −41 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ map <string,int> mp= { 2.如果你知道了元素的下标,但是想知道这个元素是否已经存在 `map` 中,可以使用 `find` 函数。 格式:`if(mp.find()==mp.end())`,意思是如果返回的是 `map` 的末尾,因为 `map` 如果没有查找到元素,迭代器会返回末尾。 其中 ```end()``` 返回指向map尾部的迭代器 3.如果你想知道map里全部的元素,那么就要使用迭代器了,如果你还不会,请查阅之前文章中的迭代器。 Loading @@ -48,60 +49,31 @@ map <string,int> mp= { 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` 中元素的个数 insert() 插入元素 - `empty()` 如果 `map` 为空则返回 `true`,例如 `mp.empty()`。 key_comp() 返回比较元素key的函数 lower_bound() 返回键值>=给定元素的第一个位置 max_size() 返回可以容纳的最大元素个数 rbegin() 返回一个指向map尾部的逆向迭代器 rend() 返回一个指向map头部的逆向迭代器 size() 返回map中元素的个数 swap() 交换两个map upper_bound() 返回键值>给定元素的第一个位置 value_comp() 返回比较元素value的函数 ``` ### `map` 常数靠得住吗? Loading Loading
docs/ds/stl/map.md +13 −41 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ map <string,int> mp= { 2.如果你知道了元素的下标,但是想知道这个元素是否已经存在 `map` 中,可以使用 `find` 函数。 格式:`if(mp.find()==mp.end())`,意思是如果返回的是 `map` 的末尾,因为 `map` 如果没有查找到元素,迭代器会返回末尾。 其中 ```end()``` 返回指向map尾部的迭代器 3.如果你想知道map里全部的元素,那么就要使用迭代器了,如果你还不会,请查阅之前文章中的迭代器。 Loading @@ -48,60 +49,31 @@ map <string,int> mp= { 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` 中元素的个数 insert() 插入元素 - `empty()` 如果 `map` 为空则返回 `true`,例如 `mp.empty()`。 key_comp() 返回比较元素key的函数 lower_bound() 返回键值>=给定元素的第一个位置 max_size() 返回可以容纳的最大元素个数 rbegin() 返回一个指向map尾部的逆向迭代器 rend() 返回一个指向map头部的逆向迭代器 size() 返回map中元素的个数 swap() 交换两个map upper_bound() 返回键值>给定元素的第一个位置 value_comp() 返回比较元素value的函数 ``` ### `map` 常数靠得住吗? Loading