【学习笔记】set & multiset

这篇具有很好参考价值的文章主要介绍了【学习笔记】set & multiset。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

PS:本文仅起一个备忘的作用。

set

set 指的是有序的不可重集,与数学上的定义类似。

常用操作:

  • p.insert(x):在 \(p\) 中插入 \(x\),若 \(p\) 中已有 \(x\) 则返回 false,否则返回 true
  • p.erase(x):在 \(p\) 中删除值为 \(x\) 的元素,返回删除的元素个数
  • p.erase(pos):在 \(p\) 中删除迭代器为 \(pos\) 的元素
  • p.clear():清空 \(p\)
  • p.begin():返回指向 \(p\) 首元素的迭代器
  • p.rbegin():返回指向 \(p\) 末尾元素 的迭代器
  • p.end():返回指向 \(p\) 最后的占位符的迭代器,没有元素
  • p.count(x):返回 \(p\) 内值为 \(x\) 的元素个数,因为 set 中元素不可重复,所以其返回值只能为 0 或 1
  • p.empty()\(p\) 是否为空
  • p.size():返回 \(p\) 内元素个数
  • p.find(x):返回指向 \(p\) 内值为 \(x\) 的元素的迭代器,若不存在则返回 p.end()
  • p.lower_bound(x):返回 \(p\) 中首个大于等于 \(x\) 的值的迭代器,若不存在则返回 p.end()
  • p.upper_bound(x):返回 \(p\) 中首个大于 \(x\) 的值的迭代器,若不存在则返回 p.end()

PS:set 内置的 lower_bound()/upper_bound() 复杂度为 \(O(\log n)\),但是如果使用 algorithm 中的 lower_bound()/upper_bound() 复杂度则为 \(O(n)\)

PS:set 不支持修改

multiset

multiset 指的是有序的可重集。其操作和 set 基本相同。只不过由于其可以有相同元素,所以部分操作可能有变化。multiset 同样不支持修改。文章来源地址https://www.toymoban.com/news/detail-711736.html

到了这里,关于【学习笔记】set & multiset的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 19 标准模板库STL之set和multiset

    基础知识         1、set是一个自动有序且不含重复元素的容器,内部使用红黑树的平衡二叉索引树的数据结构来实现。向set中插入新元素时,会自动调节二叉树的排列,将元素放到合适的位置。multiset与set不同的地方在于,set内相同数值的元素只能出现一次,multiset内相同

    2023年04月22日
    浏览(47)
  • 【C++入门到精通】C++入门 —— set & multiset (STL)

    前面我们讲了C语言的基础知识,也了解了一些初阶数据结构,并且讲了有关C++的命名空间的一些知识点以及关于C++的缺省参数、函数重载,引用 和 内联函数也认识了什么是类和对象以及怎么去new一个 ‘对象’ ,也了解了C++中的模版,以及学习了几个STL的结构也相信大家都

    2024年02月08日
    浏览(41)
  • 【C++】map、set、multimap、multiset的介绍和使用

    我讨厌世俗,也耐得住孤独。 1. 之前所学的vector,list,deque等容器都是序列式容器,因为他们的底层数据结构都是线性的,并且数据结构中存储的都是元素数据本身,也就是单一的变量。 而下面所学的set、map、multimap、multiset等容器都是关联式容器,他们内部存储的不再是单

    2023年04月15日
    浏览(40)
  • 【C++】STL——set/multiset 和 map/multimap的使用

    在初阶阶段,我们已经接触过STL中的部分容器 比如:vector、list、deque、forward_list(C++11)等,这些容器统称为 序列式容器 ,因为其底层为线性序列的数据结构,里面存储的是元素本身。 而今天我们要学习的几个容器称为关联式容器,那什么是关联式容器?它与序列式容器有什

    2024年02月14日
    浏览(44)
  • C++进阶:详细讲解容器set与map(pair、multiset、multimap)

    C++进阶:详细讲解容器set与map(pair、multiset、multimap) 上次介绍了搜索二叉树:C++进阶:二叉搜索树介绍、模拟实现(递归迭代两版本)及其应用 为了介绍后面的AVLTree和红黑树,我们要进行一些铺垫,就是set与map的介绍啦 关联式容器和序列式容器是 C++ 中两种不同的容器类

    2024年04月12日
    浏览(40)
  • C++:stl中set(multiset)和map(multimap)的介绍和使用

    本文主要从概念、常用接口和使用方法方面介绍set(multiset)和map(multimap)。 目录 一、概念介绍 1.关联式容器 2.键值对 3. 树形结构的关联式容器 二、set和multiset 1.set的介绍 2.set使用 1. set模板参数列表 2. set构造 3. set迭代器 4. set容量 5. set修改操作 6.set使用举例 3.multiset介绍 4.mul

    2024年02月08日
    浏览(40)
  • 【C++】map/multimap/set/multiset的经典oj例题 [ 盘点&全面解析 ] (28)

    前言 大家好吖,欢迎来到 YY 滴C++系列 ,热烈欢迎! 本章主要内容面向接触过C++的老铁 主要内容含: 欢迎订阅 YY 滴C++专栏!更多干货持续更新!以下是传送门! YY的《C++》专栏 YY的《C++11》专栏 YY的《Linux》专栏 YY的《数据结构》专栏 YY的《C语言基础》专栏 YY的《初学者易

    2024年02月04日
    浏览(45)
  • 【C++进阶04】STL中map、set、multimap、multiset的介绍及使用

    vector/list/deque… 这些容器统称为 序列式容器 因为其底层为线性序列的数据结构 里面存储的是元素本身 map/set… 这些容器统称为 关联式容器 关联式容器也是用来存储数据的 与序列式容器不同的是 其里面存储的是key, value结构的键值对 在数据检索时比序列式容器效率更高 “键

    2024年02月03日
    浏览(46)
  • 【高阶数据结构】map和set的介绍和使用 {关联式容器;键值对;map和set;multimap和multiset;OJ练习}

    关联式容器和序列式容器是C++ STL中的两种不同类型的容器。 关联式容器是基于键值对的容器 ,其中每个元素都有一个唯一的键值,可以通过键值来访问元素。关联式容器包括set、multiset、map和multimap。 序列式容器是基于元素序列的容器 ,其中元素按照一定的顺序排列,可以

    2024年02月11日
    浏览(40)
  • WPF实战学习笔记19-备忘录添加功能

    由于todoview 和 memoview的相似度很高,可复制todoview 的代码。 memoviewmodel.cs memo.view 修改控制器

    2024年02月15日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包