c++中map的使用方法,超详细

map是STL(中文标准模板库)的一个关联容器。

  1. 可以将任何基本类型映射到任何基本类型。如int array[100]事实上就是定义了一个int型到int型的映射。
  2. map提供一对一的数据处理,key-value键值对,其类型可以自己定义,第一个称为关键字,第二个为关键字的值
  3. map内部是自动排序的

头文件map<map>

定义map

map<type1name,type2name> maps;//第一个是键的类型,第二个是值的类型

例如:

map<string,int> maps;

 

  • 通过迭代器进行访问

map可以使用it->first来访问键,使用it->second访问值

#include<map>
#include<iostream>
using namespace std;
int main()
{
   map<char,int>maps;
   maps['d']=10;
   maps['e']=20;
   maps['a']=30;
   maps['b']=40;
   maps['c']=50;
   maps['r']=60;
   for(map<char,int>::iterator it=mp.begin();it!=mp.end();it++)
   {
       cout<<it->first<<" "<<it->second<<endl;
   }
   return 0;
}

4.map的常用用法

  • maps.insert() 插入
// 定义一个map对象
map<int, string> m;
 
//用insert函数插入pair
m.insert(pair<int, string>(111, "kk"));
 
// 用insert函数插入value_type数据
m.insert(map<int, string>::value_type(222, "pp"));
 
// 用数组方式插入
m[123] = "dd";
m[456] = "ff";
  • maps.find() 查找一个元素

find(key): 返回键是key的映射的迭代器

map<string,int>::iterator it;
it=maps.find("123");
  • maps.clear()清空

  • maps.erase()删除一个元素
//迭代器刪除
it = maps.find("123");
maps.erase(it);

//关键字删除
int n = maps.erase("123"); //如果刪除了返回1,否则返回0

//用迭代器范围刪除 : 把整个map清空
maps.erase(maps.begin(), maps.end());
//等同于mapStudent.clear()
  • maps.szie()长度
int len=maps.size();获取到map中映射的次数
  • maps.begin()返回指向map头部的迭代器
  • maps.end()返回指向map末尾的迭代器
//迭代
map< string,int>::iterator it;
for(it = maps.begin(); it != maps.end(); it++)
    cout<<it->first<<" "<<itr->second<<endl;//输出key 和value值
  • maps.rbegin()返回指向map尾部的逆向迭代器
  • maps.rend()返回指向map头部的逆向迭代器
//反向迭代
map<string,int>::reverse_iterator it;
for(it = maps.rbegin(); it != maps.rend(); it++)
    cout<<it->first<<' '<<it->second<<endl;
  • maps.empty()判断其是否为空
  • maps.swap()交换两个map

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C++map是一个关联容器,它存储键值对,其每个键都是唯一的。在C++,可以使用map类来使用C++mapC++ map提供了许多方法来操作和访问元素。这些方法包括:begin(),end(),size(),empty(),insert(),erase(),find()等。使用begin()方法可以返回指向map开头的迭代器,而end()方法返回指向map末尾的迭代器。size()方法返回map元素的数量,empty()方法用于检查map是否为空。insert()方法用于插入键值对,erase()方法用于删除元素,find()方法用于查找元素。另外,还有lower_bound()和upper_bound()方法用于返回给定元素的位置。 另外,根据引用,C++还有hash_map和unordered_map这两个类,它们是哈希表的实现方式。unordered_map在大数据量时具有较高的查找效率,但在小数据量时会占用较多的内存。在使用unordered_map时,需要注意先判断键是否存在,避免不必要的插入和默认值返回。count()方法可以用来判断键的数量,而find()方法可以查找键是否存在。 因此,C++有多种map类型可供使用,具体使用哪一种取决于实际需求和性能要求。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [详细Java入门到精通自学视频课程-08、继承:概述、案例.rar](https://download.csdn.net/download/weixin_54787054/88280693)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [C++map使用](https://blog.csdn.net/qican_7/article/details/98342271)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值