Map和multimaps根据元素的key自动对元素进行排序。这么一来,根据已知的key搜寻某个元素时,就能够有很好的性能,而根据已知value搜寻元素时,性能就很糟糕。map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,Map提供一对一的数据处理能力。
1.map的构造函数:map提供多个构造函数,
常用:map<Key,Elem> mp;map<key,elem,op> mp; op:排序规则
2.mp.size() 返回容器的大小
mp.empty()
mp.max_size() 返回容器的最大元素数量
mp1==mp2 判断是否mp1等于mp2
mp1 <mp2
mp1> mp2
mp1<=mp2
mp1>=mp2
mp.count(key) 返回“键值等于key”的元素的个数
mp.find(key) 返回“键值等于key”的第一个元素,找不到就返回end()
mp.begin() 返回一个双向迭代器,指向第一个元素
mp.end() ………………………………最后元素的下一个位置
mp.rbegin() …………………………指向逆向遍历的第一个元素
mp.rend() ……………………………………………最后元素的下一个元素
mp.insert(elem)
mp.insert(pos,elem)
mp.insert(beg,end)
mp.erase(elem) 移除“值value与elem相等”的元素,返回移除个数
mp.erase(pos) 移除迭代器pos所指位置上的元素,无返回
mp.erase(beg,end)移除区间(beg,end)内的所有元素,无返回
mp.clear() 移除全部元素,将整个容器清空
3.遍历: map<key,elem> ::iterator pos;
for(pos=mp.begin();pos!=mp.eng();++pos)
{ cout<<"key "pos->first<<" value "<<pos->second<<endl; }