博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
STL 集合类
阅读量:5323 次
发布时间:2019-06-14

本文共 983 字,大约阅读时间需要 3 分钟。

集合类简介

  • 集合让程序员能在容器中快速的查找键(键:存储在一维容器中的值)
  • set和multiset之间的区别就是set中的值唯一,multiset中的值可以不唯一。
  • 为实现快速搜索,集合的内部结构像二叉树,插入数据时对其进行排序。
  • #include <set>

实例化

以set为例,multiset同样

1 set
setA;2 set
setB;3 set
setC(setA);4 set
setD(setB.cbegin(),setB.cend());

 

插入元素

1 setA.insert(-1);2 setB.insert(setA.cbegin(),setA.cend());

 


 

查找元素

查找第一个与给定值匹配的元素

1 auto iElementFound = setA.find(-1);

 


 

删除元素

成员函数erase(),通过键删除值,相同的元素全部删除

1 setA.erase(-1);2 setA.erase(setA.cbegin(),setA.cend());

 


 

set和multiset的优缺点

对需要频繁查找的应用程序来说,STL  set和multiset很有优势,因为其内容是经过排序的,因此查找速度更快。然而,为提供这种优势,容器在插入元素时进行排序。因此,插入元素时有额外开销,因为需要对元素进行排序——如果应用程序将频繁使用find()等函数,则这种开销是值得的。


STL散列集合实现std::unordered_set和std::unordered_multiset

  • #include <unordered_set>
  • 插入和排序时间固定
  • 有一个负责确定排列顺序的散列函数
1 unordered_set
usetA;2 auto HFn = usetA.hash_function();

其他

set::size()指出容器包含多少个元素。

multiset::count(value)确定有多少个元素包含特定的值。

 

转载于:https://www.cnblogs.com/kids-7/p/3667376.html

你可能感兴趣的文章
poj 题目分类
查看>>
windows 安装yaml支持和pytest支持等
查看>>
读书笔记:季羡林关于如何做研究学问的心得
查看>>
面向对象的优点
查看>>
套接口和I/O通信
查看>>
阿里巴巴面试之利用两个int值实现读写锁
查看>>
浅谈性能测试
查看>>
Winform 菜单和工具栏控件
查看>>
jequery动态创建form
查看>>
CDH版本大数据集群下搭建的Hue详细启动步骤(图文详解)
查看>>
巧用Win+R
查看>>
浅析原生js模仿addclass和removeclass
查看>>
Python中的greenlet包实现并发编程的入门教程
查看>>
java中遍历属性字段及值(常见方法)
查看>>
深入理解jQuery框架-框架结构
查看>>
YUI3自动加载树实现
查看>>
python知识思维导图
查看>>
当心JavaScript奇葩的逗号表达式
查看>>
App Store最新审核指南(2015年3月更新版)
查看>>
织梦MIP文章内容页图片适配百度MIP规范
查看>>