简介:
- map中所有元素都是pair
- pair第一个元素为key键值,起到索引作用,第二个元素为value实质
- 所有元素都会按照key键值自动排序
本质:
- map/multimap属于关联式容器,底层结构使用二叉树实现
优点:
map和multimap区别:
- map不允许容器中有重复的key值元素
- multimap允许容器中有重复的key值元素
map构造和赋值
构造:
-
mapmp;
//默认构造
-
map(const map& mp);
//拷贝构造
赋值:
-
map& operator=(const map& mp);
//重载=运算符
map容器所有元素都成对出现,插入数据需要使用对组
#include
#include
#include
map容器大小和交换
-
.size();
//返回容器中元素数目
-
.empty();
//判断容器是否为空
-
.swap(mp);
//交换两个集合容器
#include
#include
#include
map插入和删除
-
.insert(elem);
//容器中插入元素
-
pair
方式
-
make_pair
方式
-
value_type
方式
-
[]
下标方式
-
.clear();
//清除所有元素
-
.erase(pos);
//删除pos迭代器所指的元素,返回下一个元素的迭代器
-
.erase(beg,end);
//删除区间[beg,end)内的元素,返回下一个元素的迭代器
-
.erase(key);
//删除容器中值为key的元素
#include
#include
#include
map查找和统计
-
.find(key);
//查找key是否存在,返回该键的元素的迭代器,若不存在,返回.end();
-
.const(key);
//统计key的元素个数,对于map,无非是0或1
mapmp;
mp.insert(pair(1, 2));
mp.insert(make_pair(2, 2));
mp.insert(map::value_type(3, 1));
if (mp.find(3) != mp.end())
{
cout }
map自定义排序规则
利用仿函数,可以改变排序规则
对于自定义数据类型,map必须指定排序规则,同set容器
#include
#include
#include
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.e1idc.net