一起来读书205- c++标准模板库编程实战:第五章 set的使用

摘要

set容器的使用

详情

容器类别

  • set<T>容器保存T类型的对象,而且保存的对象是唯一的。
  • multiset<T>容器和set<T>容器保存T类型对象的方式相同,但它可以保存重复的对象。
  • unordered_set<T>容器保存T类型的对象,而且对象是唯一的。
  • unordered_multiset<T>容器保存T类型对象的方式和unordered_set<T>相同,但它可以保存重复对象。

函数

函数成员说明set<T>multiset<T>unordered_set<T>unordered_multiset<T>
insert()插入元素,总是成功执行    
emplace()在指定位置放置元素,总是成功    
emplace_hint()在指定放置小部分元素,总是成功    
erase()删除指定元素    
clear()清除所有元素    
count()返回指定键所对应的元素个数    
equal_range()遍历判断相等    
lower_bound()升序查找  - 
upper_bound()降序查找  - 
find()普通查找    

unordered_set<T>容器

元素类型必须可以比较是否相等,因为这可以确定元素什么时候相等。元素是无序的;

保存指针

推荐使用定义在memory头文件中的owner_less<T>函数对象类型的实例来比较容器中的智能指针.

集合运算

1.set_union():并集运算;

2.set_intersection():交集运算;

3.set_difference():差运算;

4.set_symmetric_difference():

5.includes():包含运算;

总结

  • set容器保存的对象用他们自己作为键。
  • set容器存储的T类型对象是有序的,默认使用less<T>对对象排序。
  • multiset<T>容器保存对象的方式和set相同,但对象并不是唯一的。
  • 如果两个对象是相等的,那么他们在set或multiset中会被看成同一个元素。
  • unordered_set<T>容器保存T类型的对象,并且他们是唯一的,他们的位置由对象的哈希值确定。
  • unordered_multiset<T>容器中的对象位置也是由对象的哈希值确定的,但对象不需要是唯一的。
  • 无序set容器用==operator来决定两个对象是否相等,因而T类型必须支持这个运算符
  • 无序set容器中的对象通常保存在哈希表的格子中,用对象的哈希值可以确定对象在容器中的位置。
  • 无序set容器的装载因子是每个格子平均的元素个数。
  • 无序set容器在初始时会分配一些格子。当超过最大装载因子时,格子的个数会自动增加。
  • STL定义了一些集合运算的算法。二元集合运算是交,并,差,对称,包含。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值