第十章:关联容器

1.关联容器和顺序容器的本质区别在于:关联容器通过键值(KEY)存储和读取元素,而顺序容器则通过元素在容器中的位置顺序存储和访问元素.

2.pair类型提供的主要操作:

1).pair<T1,T2>p1                     创建一个空的pair的类型

2).pair<T1,T2>p1(v1,v2)         p1.first=v1,p1.second=v2并创建pair对象

3).make_pair(v1,v2)                 创建v1,v2pair对象

3.map对象中,键值类型必须定义<操作符,而且操作符能正确的工作.

map<K,V>::key_type              在容器中用作索引的键的类型

map<K,V>::mapped_type       map容器中,键所关联的值的类型

map<K,V>::value_type           一个pair类型.他的first元素具有const map<K,V>::key_type类型,second元素则为map<K,V>::map_type类型

4.使用下标访问map与使用下标访问数组或vector的行为截然不同:用下标访问不存在的元素将导致在map容器中添加一个新的元素,他的键即为该下标值,插入元素时,如果该键已经存在,则只是插入失败.

5.map容器提供的insert操作

1).m.insert(e);             e是一个在m上的value_type类型的值,如果(e.first)不在m,则插入一个值为e.second的新元素;如果该键存在,m保持不变.该函数返回一个pair类型的对象,包含指向键为e.first元素的map迭代器,以及一个bool类型对象,表示是否插入了该元素

2).m.insert(beg,end)   begend是标记元素范围的迭代器

3).m_insert(iter,e)       ealue_type类型的值

其中:alue_type类型那个可以用make_pair(k,v)来生成

6.不修改map对象的查询操作:

m.count(k)                  返回mk的出现次数(0或者1)

m.find(k)                    如果m中存在按k的索引的元素,则返回指向该元素的迭代器,如果不存在,则返回超出末端的迭代器

7.删除对象

m.erase(k)                   删除m中键值为k的元素,返回size_type类型的值.表示删除的元素的个数

m.erase(p)                   m中删除迭代器p所指元素,p必须指向m中确实存在的元素,而且不等于m.end(),返回void类型

m.erase(b,e)                删除b-e段的元素

m.erase(k)                   删除键值为k的元素

8.set类型:

set不支持下标操作符,而且没有定义mapped_type类型,另外set容器存储的键值也必须唯一,且不能改变

8.multimap:不支持下标运算

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值