C++ STL 常用方法(函数)之-map篇

#include<map>
using namespace std;
map<char,int>M; 


① M.size(); 

返回容器中元素个数


②M.count(char C);

来判定关键字是否出现,无法定位数据出现位置,由于map的特性(无重复键值),就决定了count函数的返回值只有两个,不存在返回0,存在返回1。


③M.find(char C);

来定位数据出现位置,它返回的一个迭代器,当数据出现时,它返回数据所在位置的迭代器,如果map中没有要查找的数据,它返回的迭代器等于M.end()函数返回的迭代器。


④M.clear();

清空map中的数据。


⑤M.empty();

判定map中是否有数据,它返回true则空。 


⑥M.erase();有三个重载函数

M.erase(const key_type&__x)删除等于某个键值的元素

M.erase(iterator __first,iterator __last)删除一个迭代区间上的所有元素

M.erase(iterator __positation)删除某个迭代器位置上的元素


另:

将元素插入到map(红黑树)中的时候,map会根据设定的比较函数将该元素放到相应的节点上去。

在定义map的时候如果没有指定比较函数,那采用默认的比较函数,即按键值由小到大的顺序插入元素。

而对于非默认排序需要自己编写比较函数

(1) 如果元素不是结构体 

struct myComp
{
	bool operator()(const int &a, const int &b)
	{	
		return a>b;// 按键值从大到小排序
	}
};


(2) 如果元素是结构体 那么 可直接把比较函数写在结构体内

struct node
{
	string name;
	int score;
	bool operator()(const node &a)const
	{	
			return a.score<a.score
    }
};




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值