本文主要是介绍ACM STL之map,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
map是一个容器,里面存储的是 pair 由key和value组成 key称为关键字(对应first)value称为键值(对应second) key值不能重复map中的元素按key升序排列(省了sort)。
头文件 #include
begin() 返回指向map头部的迭代器clear() 删除所有元素count() 返回指定元素出现的次数empty() 如果map为空则返回trueend() 返回指向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最后一个元素的下一个位置。
以上便是个人所知如有错误还请斧正。
这篇关于ACM STL之map的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!