标准模板库STL中的map
map与之前的set中内容大致相同,但是,保存的数据多了一项保存的数值型数据,即,map可以用一个专门的key来进行排序和搜索,而在Type中储存所需要保存的各类数据。对于map也有一个multimap,储存多个相同key值的数据。
stl中的所有模版都储存在std命名空间中。
#include <map> using namespace std;
class Allocator=allocator<pair <const Key, Type> > > 储存管理设备,默认为allocator<pair<const Key,Type>>
由于map比set多了一个专门用来储存的Type,则其可储存更多东西,且可以使用默认的比较函数来进行判断,而专门的用一个函数来计算得到其关键字,更方便于比较,搜索。
begin(),
返回指向首元素的定位器iterator.
count(<template> Key):返回对应Key的元素个数
count(<template> Key):返回对应Key的元素个数,一般时0或1
empty():测试是否为空
end():返回最后一个元素的定位器
equal_range():返回一对定位器,一个指向>= 给定值的第一个Key,>给定值的第一个key。
erase();将一定范围内的元素删除,删除指定元素的方法:
map<int,string> a; a.insert(pair<int,string>(compute("aab"),"aab")); a.insert(pair<int,string>(compute("aca"),"caa")); a.insert(pair<int,string>(compute("aaa"),"aaa")); a.insert(pair<int,string>(compute("agg"),"baa")); map<int,string>::iterator p; p=a.find(compute("agg")); a.erase(p);
find(template Key):找出与给定key相同的定位器,若不存在,指向set的结束定位器。
get_allocator():返回set容器的一个allocator的副本
insert() 插入一个元素或一定数量的元素到应该的位置
map<int,string> a; a.insert(pair<int,string>(compute("aab"),"aab")); a.insert(pair<int,string>(compute("aca"),"caa")); a.insert(pair<int,string>(compute("aaa"),"aaa")); a.insert(pair<int,string>(compute("aab"),"baa"));
ower_bound() 返回指向大于(或等于)某值的第一个元素的迭代器
key_comp() 返回一个用于元素间值比较的函数
max_size() 返回集合能容纳的元素的最大限值
rbegin() 返回指向集合中最后一个元素的反向迭代器
rend() 返回指向集合中第一个元素的反向迭代器
size() 集合中元素的数目
swap() 交换两个指定对象的值。是指保存的数据交换,key保存不变
upper_bound() 返回大于某个值元素的迭代器
value_comp() 返回一个用于比较元素间的值的函数
operator[key] 寻找指定key的元素,并插入值,若未规定值,则值为默认值
map<int,string> a; a.insert(pair<int,string>(compute("aab"),"aab")); a.insert(pair<int,string>(compute("aca"),"caa")); a.insert(pair<int,string>(compute("aaa"),"aaa")); a.insert(pair<int,string>(compute("aab"),"baa")); a[6]="awfawf"; a[2];