C++的STL的map常用函数

stl中的map是自动按照关键字索引升序排列的,还是列举了基本的增删查改函数:

#include <map>                         //头文件

map<int,string>mp                    //声明

map<int, string>mp(mp2)         //把相同类型的mp2全部元素拷贝构造到mp

map<int, string, comp>mp        //带有自定义的map内元素比较函数comp做为参数的声明

map<int, string>::iterator it        //声明迭代器

mp.insert()

1) mp.insert( pair<int, string> (0, "zero_value"))                 //用pair<keytype, valuetype>()插入

2) mp.insert( map<int, string>::value_type(1, "first_value"))   //用map<keytype, valuetype>::value_type()插入

mp[2]= "second_value"             //关键字索引方式插入,如原来没有该关键字则添加;若有则覆盖原关键字对应的值

mp.erase()

1) it = mp.find(0)      mp.erase(it)                     //迭代器方式删除

2) int zero_or_one = mp.erase(0)                   //关键字方式删除,成功返回1,失败返回0

3) mp.erase( mp.begin(), mp.end() )              //迭代器范围删除,这里相当于mp.clear()

mp.clear()                                                       //清空所有元素                                       

it = mp.find(0)                                  //用关键字查找,成功返回对应关键字的迭代器,失败返回mp.end()

it->first     it->second      it++           //分别访问迭代器对应的key、迭代器对应的value、迭代器加1

mp.size()                                        //返回元素个数

mp.max_size()                               //返回可以容纳的最多元素个数

mp.begin()                                     //返回指向头部的迭代器,即第一个元素的迭代器

mp.end()                                        //返回指向尾部的迭代器,即最后一个元素后面的迭代器

map<int, string>::reverse_iterator re_it         //声明逆向迭代器,加1时访问前一个元素,减1时访问后一个元素

mp.rbegin()                                   //返回指向最后一个元素的逆向迭代器

mp.rend()                                     //返回指向第一个元素前面的逆向迭代器

re_it.base()                                  //返回逆向迭代器所指向元素位置的后一个位置的迭代器

mp.count(key)                               //返回被查找关键字的出现次数,又因为map内关键字唯一,所以找到返回1,没找到返回0

mp.empty()                                   //空则返回true,不空返回false

mp.lower_bound(key)                  //返回map中键>=给定值的第一个元素的迭代器

mp.upper_bound(key)                 //返回map中键>给定值的第一个元素的迭代器

mp.key_comp()                           //返回比较两个key元素的函数

map<int, string>::key_compare  mycomp=mp.key_comp()      

mycomp(key1, key2)                  //比较两个key的位置关系,若key1元素在前,则返回true,注意map已默认按key的升序排列

同理

mp.value_comp()                       //返回比较map内两个pair元素的函数

map<int, string>::value_compare mycomp=mp.value_comp()

mycomp(pair_element1, pair_element2)         //比较两个pair元素key的位置,若pair_element1.first在前,返回true

mp.equal_range(key)                 //返回与key相等的最大区间[左闭右开),即返回pair<lower_bound(), upper_bound()>的一个对象

mp.get_allocator()                     //返回map的allocator

mp.swap(mp2)                          //交换两个相同类型(大小可能不同)的map的全部元素

发布了25 篇原创文章 · 获赞 11 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/pgs1004151212/article/details/99590793