C++的stl库之容器(5)map和multmap图

本文详细介绍了C++ STL中的map容器,包括其与set的区别、find查找、at操作及其应用场景。同时,文章探讨了unordered_map,解释了其基于哈希表的实现、插入操作、负载因子等关键概念,强调了正确使用哈希表以提高效率的重要性。STL容器的学习有助于提升C++编程的效率和质量。
摘要由CSDN通过智能技术生成


六,map容器

1,简述

其实map容器和set容器本质差不多,都是二叉排序树,而且multmap和map的关系也和set和multset的关系差不多,都是允许重复元素和不允许重复元素的相同逻辑的容器。
而map和set最大的区别是map存入的是一个有序对,即pair<first,second>,所有的输入和输出的数据都是pair格式的,set就是map。
不过map还是有一定和set的区别,当然,大多都是接口的区别,由于pair的特殊特性,map提供了一些set不存在的接口。
而且map建立时,传入的参数是两个参数,分别是pair的头和尾。

class map(int){
   
   set<pair<int,int>>m;
}
map<int,int>M;

2,find查找

虽热map是pair格式的set,但是就find函数来说,map不用传入pair格式的数据就能查找到值。
虽然find的本质也很简单,就是在set中找到first值与查找的值相等的迭代器,但是使用方法还是和set的使用方法有所区别。

3,at位于

和set不一样,因为pair本质是一个数据结构,所以有自己独有的比较准则。
map以first作为整个pair的值,来对pair作为排序的依据,根据这个性质,我们也可以将map使用在一些两个数值排序的问题上。
因为支持at,map可以提供M[]的方法来访问,也可以通过M[i]=j这种方式往map里面插入值。插入时,i为first,j为second,然后调用insert函数。

int at(int j){
   
    return *S.find(j);
}

4,后记

map容器之所以叫map,因为如果我们定义时,可以将两个节点都设定为int,这样就

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值