栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

c++中map的相关函数及用法(整理)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

c++中map的相关函数及用法(整理)

map是STL提供的关联容器,提供一对一的hash,以(key,value)的形式存在,可以储存任意类型的数据。map中的元素自动按key的升序排序。
头文件:#include
定义:
map temp1;
map temp2;
访问:
通过下标访问:temp1[‘c’],temp2[i];
通过迭代器进行访问:it->first访问key,it->second访问value;
例:map::iterator it;
it=temp1.begin();
添加数据:
insert函数插入pair数据:temp2.insert(pair(1,”sss”));
insert函数插入value_type数据:temp2.insert(map::value_type(2,”ssss”));
数组方式插入:temp[2]=”ssssss”;{可以覆盖之前的赋值}
查找元素:
find(key):返回一个迭代器指向键值为key的元素,没找到返回指向map尾部的迭代器;
删除元素:
 迭代器删除:it=temp2.find(“1”); temp2.erase(it);
 关键字删除:int res=temp2.erase(“1”);{删除会返回1,否则返回0};
 迭代器范围删除:temp2.erase(temp2.begin()+m,temp2.end()-n);{0<=m,n  删除所有元素:temp2.clear();
map的基本操作函数:
1.返回指定元素的个数:temp1.count("a");
2.返回map中元素的个数:temp1.size();
3.交换两个map:swap(temp1,temp);
4.返回可以容纳的最大元素个数:temp2.max_size();
5.判断map是否为空:temp1.empty();
6.逆向迭代器:map::reverse_iterator it;指向尾部temp1.rbegin();指向头部temp1.rend();
7.返回特殊条目的迭代器对:返回一对迭代器i和j,i为不破坏次序的前提下,value可以插入的第一个位置lower_bound;j为在不破坏次序的前提下,value可插入的最后一个位置upper_bound;[i,j)的每个元素都等同于value,且[i,j)是[first,last)内符合这一性质的最大子区间。
例:pair::iterator,map::iterator> ret=temp1.equal_range(‘b’);
8.返回与map关联的配置器:
map::allocator_type m=temp1.get_allocator();{m=allocator>};
9.返回比较元素key的容器使用的比较对象:
map::key_compare mycomp=temp1.key_comp();
char high=temp1.rbegin()->first;
it=temp1.begin();

do{
cout<first<<”=>”<second< }while(mycomp((*it++).first,high)){key值为high时,循环终止}
10.返回比较元素value的函数:
it=temp1.begin();
pair last=*temp1.rbegin();
do{
cout<first<<”=>”<second< }while(temp1.value_comp()(*it++,last));{value值为last时,循环终止}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1001712.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号