介绍
常用的映射类是map,multimap。在前述的各个容器中,仅保存着一样东西,但是在映射中将会得到两样东西:关键字以及作为对关键字进行查询得到的结果值,即一对值<Key,Value>。map单映射中,Key与Value是一对一的关系;multimap多映射中,Key与Value可以是一对多的关系。
- map 的 sort 问题:
Map 中的元素是自动按 key 升序排序,所以不能对 map 用 sort 函数:
常用函数
- 构造函数
- map(const Pred& comp=Pred(),const A& al=A()):创建空映射。
- map(const map& x):复制构造函数。
- map(const value_type * first,const value_type * last,const Pred& comp=Pred(),const A& al = A()):复制[first,last)之间元素构成新映射。
- multimap(const Pred& comp=Pred(),const A& al=A()):创建空映射。
- multimap(const map& x):复制构造函数。
- multimap(const value_type * first,const value_type * last,const Pred& comp=Pred(),const A& al = A()):复制[first,last)之间元素构成新映射。
- 大小,判断空函数。
- 增加,删除函数
- iterator insert(const value_type& x):插入元素x
- iterator insert(iterator it,const value_type& x):在迭代指针it处插入元素x。
- void insert(const value_type * first,const value_type * last):插入[first,last)间元素。
- iterator erase(iterator it):删除迭代指针it处元素。
- iterator erase(iterator first,itertor last):删除[first,last)迭代指针间元素。
- size_type erase(const const Key& key):删除键值等于key的元素。
- 操作函数
- const _iterator lower_bound(const Key& key):返回键值大于等于key的迭代器指针,否则返回end():
- const _iterator upper_bound(const Key& key):返回键值大于等于key的迭代器指针,否则返回end():
- int count(const Key& key) const:返回容器中键值等于key的元素个数
- pair<const_iterator ,const_iterator>equal_range(const Key& key) const:返回容器中键值等于key的迭代指针[first,last)
- const_iterator find(const Key& key) const:返回容器中键值等于key的迭代器指针,如果没找到就返回指向 map 尾部的迭代器。
- void swap(map & s):交换单映射元素。
- void swap(multimap& s):交换多映射元素。
- 特殊函数。
reference operator[](const Key& t):仅用在单映射map类中,可以以数组的形式给映射添加键值对,并可返回值的引用。 - 遍历函数