一起来读书204- c++标准模板库编程实战:第四章 map容器

摘要

 

详情

1.map容器的比较函数在相等时不能返回true

map类型

  • map<K, T>容器保存的是pair<const K, T>类型的元素。
  • multimap<K, T>容器和map<K, T>容器类似,允许使用重复的键。
  • unordered_map<K, T>中pair<const K, T>元素的顺序并不是直接由键值确定的,而是由键值的哈希值决定的。
  • unordered_multimap<K, T>也可以通过键值生成的哈希值来确定对象的位置,但它允许有重复的键。

pair

1.pair的成员变量second也是一个迭代器,它指向键值大于参数的第一个参数

map类函数

函数成员说明map<T, N>multimap<K, T>unordered_map<K,T>unordered_multimap<K, T>
begin()头迭代器    
end()尾迭代器    
insert()插入键值对    
emplace()构造新元素    
emplace_hint()在迭代器后面构造新元素    
operator[]()索引    
at()根据key找alue    
equal_range()遍历查找key    
upper_bound()     
lower_bound()     
erase()删除元素    
lower_bound()返回一个迭代器,指向键值和参数相等或大于参数的第一个元素,或指向结束迭代器    
upper_bound()返回一个迭代器,指向键值大于函数参数的第一个元素,如果这样的元素不出现的话,他就是一个结束迭代器    
rehash()设置格子数量    
clear()移除所有元素    
empty()是否为空    
bucket_count()返回格子个数    
bucket_size()返回指定格子中元素的个数    

总结

  • pair<T1, T2>对象封装了一个任意类型的对象
  • tuple<>模板类型的实例可以封装任意个数不同类型的对象
  • map容器是以pair<const K, T>对象的形式来保存键/对像对元素的
  • map<K,T>容器保存的元素有唯一的键值,默认使用<运算符来对键进行排序,所以键类型必须支持<运算,除非自己提供一个比较函数
  • multimap<K,T>包含的元素和map一样,都是有序的,但允许有重复的键
  • 有序关联容器用等价来决定两个键什么时候是相同的。通常只用<或>来比较键,生成比较结果。当键相等时,比较函数会返回true,从而阻止容器正常工作
  • 哈希是从对象生成名为哈希值的相对唯一整数的过程。
  • 使用键生成的哈希值将元素保存在unordered_map<K,T>容器中
  • unordered_multimap容器和unordered_map相似
  • 无序map容器默认使用equal_to<K>来比较键是否相等,所以键类型必须支持==比较和键对象的哈希
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值