【C++ STL 容器】——映射

介绍

常用的映射类是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)之间元素构成新映射。
  • 大小,判断空函数。
    • int size() const:返回容器元素个数。
    • bool empty() const:判断容器是否空,若返回true, 表明容器空
  • 增加,删除函数
    • 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类中,可以以数组的形式给映射添加键值对,并可返回值的引用。
  • 遍历函数
    • iterator begin():返回首元素的迭代器指针。
    • iterator end():返回尾元素后的迭代器指针,而不是尾元素的迭代器指针。
    • reverse_iterator rbegin():返回尾元素的逆向迭代器指针,用于逆向遍历容器
    • reverse_iterator rend(): 返回首元素前的逆向迭代器指针,用于逆向遍历容器
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值