#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
}
};