map
map基本概念
简介:
map中所有元素都是pair pair中第一个元素为key(键值),起到索引作用,
第二个元素为value(实值) 所有元素都会根据元素的键值自动排序
优点: 可以根据key值快速找到value值
map和multimap区别:
map不允许容器中有重复key值元素
multimap允许容器中有重复key值元素
map的创建
构造:
map<T1, T2> mp; "map默认构造函数:"
map(const map &mp); "拷贝构造函数"
赋值:
map& operator=(const map &mp); "重载等号操作符"
map的大小和交换
size(); "返回容器中元素的数目"
empty(); "判断容器是否为空"
swap(st); "交换两个集合容器"
map的删除和插入
insert(elem); "在容器中插入元素。"
m.insert(pair<int, int>(1, 10));
clear(); "清除所有元素"
erase(pos); "删除pos迭代器所指的元素,返回下一个元素的迭代器。"
erase(beg, end); "删除区间[beg,end)的所有元素 ,返回下一个元素的迭代器。"
erase(key); "删除容器中值为key的元素。"
"第一种插入方式"
m.insert(pair<int, int>(1, 10));
"第二种插入方式"
m.insert(make_pair(2, 20));
"第三种插入方式"
m[4] = 40;
"清空"
m.erase(m.begin(),m.end());
m.clear();
map的查找和统计
find(key);
"查找key是否存在,若存在,返回该键的元素的迭代器;若不存在,返回set.end();"
count(key); "统计key的元素个数(map只会返回0或1,这点和set一样)"
map改变排序的方式(这点和set差不多,需要一个仿函数作参数来实现)