第二部分——第十章/关联容器

通过键存储和读取元素,而顺序容易则通过元素在容器中的位置来存储和访问元素,map/set/multimap/multiset

1:pair类型,包含两个数据成员first/second,都是公有的,可以是不同类型

      pair<T1, T2> p1(v1, v20

      除构造函数外,还可以使用成员函数make_pair(v1, v2)来创建新的pair对象

 

2:map  键——值对的集合

      map<k, v> m;  需分别指定键和值的类型;对于键的唯一约束为:必须支持<操作符

 

3:map定义的类型    key_type  mapped_type  value_type(等价于pair<const k, v>)

1) map迭代器进行解引用将产生pair类型的对象

2) 使用下标访问元素,例word_count["Anna"]

3) insert成员,参数为value_type类型对象,及pair<const k, v>

        返回值:包含一个迭代器和一个bool值的pair对象;若插入成功,即键不在容器中,则bool为true,否则bool为false;迭代器始终指向具有给定键的元素

4) 查找并读取map中元素,使用下标的副作用:若不存在则插入

        count(k)   返回k的出现次数,对于map对象只可能是0或1

        find(k)      返回指向该元素的迭代器,不存在则返回超出末端迭代器

5)删除元素 erase(k)    erase(p)    erase(b, e)            p/b/e均为迭代器

6) 遍历        利用迭代器,begin()  end()两个函数

 

4:set   单纯的键的集合

      大多数操作与set相同,除了不支持下标操作和没定义mapped_type类型

1) 初始化:默认构造函数以及其他容器一段范围内的元素初始化

2) 添加元素:insert(k)  insert(b, e)

3) 获取元素:find()    count()

 

5:multimap/multiset   支持的操作与map及set相同,仅一例除外:multimap不支持下标运算

1) 添加与删除  erase()  带一个参数,则将拥有该键的元素均删去,带两个参数,则删除指定元素

2) 查找   先用count()获得个数,再用find()获得第一个元素的迭代器,然后利用for循环遍历

                   利用lower_bound(k)  upper_bound(k)    equal_range(k)返回一个迭代器的pair对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值