STL中的关联式容器——map(映射)

STL中的关联式容器——map(映射)

  map,即“映射”。map是关联容器的一种,具体实现采用了红黑树的平衡二叉树的数据结构。它提供一对一(其中第一个称为关键字key,每个关键字只能在map中出现一次,第二个称为该关键字的值value)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。由于是利用了红黑树实现,因此可以快速插入key-value记录和快速删除记录。
  并且对于迭代器来说,可以修改value,而不能修改key,而且它根据key修改value记录,因此增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响。
  map是C++ STL的一个重要成员,使用它时需要包含头文件:

#include <map>; //包含了map和multimap两种容器的定义

一、map 的初始化

有以下方式,举例说明如下:

map<int,string> a;
map<int,string> b(a); //拷贝队列a给队列b

二、map 对象的重要操作

列举如下:

a.insert(); //插入元素 
a.erase(); //删除一个元素 
a.find(); //查找一个元素 
a.clear(); //删除所有元素 
a.empty(); //如果map为空则返回true 
a.count(); //返回指定元素出现的次数 
a.size(); //返回map中元素的个数 
a.max_size(); //返回可以容纳的最大元素个数 
a.swap(); //交换两个map 

三、优先级的设定

可以有以下几种方式,列举如下:

struct cmp1
{
    bool operator ()(const int &a,const int &b)
    {
       return a>b;//最大值优先
   	}
};
struct cmp2
{
	bool operator ()(const int &a,const int &b)
	{
	    return a<b;//最小值优先
	}
};
struct node1
{
	int u;
	bool operator < (const node1 &a) const
	{
		return u>a.u;//最大值优先
	}
};
struct node2
{
	int u;
	bool operator < (const node2 &a) const
	{
		return u<a.u;//最小值优先
	}
};
map<int,string>q1;//采用默认优先级构造队列,最小值优先
map<int,string,cmp1>q2;//最大值优先 
map<int,string,cmp2>q3;//最小值优先
map<int,string,greater<int> >q4;//最大值优先
//注意“>>”会被认为错误,因为这是右移运算符,所以这里用空格号隔开
map<int,string,less<int> >q5;//最小值优先
map<node1,string>q6;//最大值优先
map<node2,string>q7;//最小值优先
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

使君杭千秋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值