map是一个容器,里面存储的是 pair 由key和value组成 key称为关键字(对应first)value称为键值(对应second) key值不能重复map中的元素按key升序排列(省了sort)。
头文件 #include
begin() 返回指向map头部的迭代器
clear() 删除所有元素
count() 返回指定元素出现的次数
empty() 如果map为空则返回true
end() 返回指向map末尾的迭代器
erase() 删除一个元素
find() 查找一个元素
insert() 插入元素
lower_bound() 返回键值>=给定元素的第一个位置
upper_bound() 返回键值>给定元素的第一个位置
max_size() 返回可以容纳的最大元素个数
size() 返回map中元素的个数
swap() 交换两个map
erase删除
a.erase(elem) 移除键值为elem的所有元素,返回个数,对 于map来说非0即1。
a.erase(pos) 移除迭代器pos所指位置上的元素。 注意:c++11中erase再删除了当前迭代器的元素会返回下一个元素的迭代器 所以当单个操作时就不用考虑迭代器,但是当在循环中使用删除函数的时候要使用pos=a.erase(pos);所以循环的结构也有所变化
a.erase(posb,pose)删除两迭代器之间的元素
for(it=a.begin();it!=a.end();)
{
if(条件)
it=a.erase(it); //删除元素,返回值指向已删除元素的下一个位置
else
++it; //指向下一个位置
}
find count
count 返回的是被找元素的个数map中不存在相同的键值所以返回值为0/1
find 返回的是被查找元素的位置 没有则返回end。用迭代器接收
end
返回的是map最后一个元素的下一个位置。
以上便是个人所知如有错误还请斧正。