• STL关联式容器set,multiset,pair,map


     set容器是一个集合容器。包含元素是唯一的。集合元素按照一点顺序排列,元素插入过程是顺序插入,所有不能插入指定位置。

    set采用红黑树变体的数据结构实现。红黑树属于平衡二叉树。再插入和删除上比vector快。

    set不能直接存取元素(不能用at.()和[])

    multiset和set大致相同,但是set支持唯一键值,每个元素只能出现一遍。而multiset可以出现多次。(会自动去重)

    不可以直接修改set或multiset容器中的元素值,因为该类容器是自动排序的。如果希望修改一个元素值只能先删除后插入新的元素值

    构造与其他容器没有什么区别。

    set.insert(elem)只用插入元素就可以了会自动排序

    同样有

    set.begin

    set.end

    set.rbegin

    set.rend

    这些常见的迭代器

    set的内部的默认排序是升序排列的

    set.swap();

    删除如下

    set.clear()

    set.erase(pos)

    set.erase(beg,end)

    set.erase(elem)如果没有就会返回0,有就会删除并且返回1

    set不支持反向迭代器对元素进行删除

    通过迭代器删除以后,迭代器会重新指向set容器中的第一个元素

    set容器的元素排序

    set.> s1;升序排序(不输就默认)

    set> s2;降序排序

    less<>和geater<>都是对象

    可以通过自己写对象来更改排序方式

    接下来是set的查找

    set.find(elem)返回指向elem的迭代器

    set.count(elem)查找数值为elem的迭代器,set只有0或1.multiset可能会更多

    set.lower_bound(elem)找到第一个>=elem元素的迭代器器

    set.higher_bound(elem)找到第一个>elem元素的迭代器

    set.equal_range(elem)

    找一个与elem相等的上下限的两个迭代器(上闭下开)

    例如1,3,5,7,9

    elem=5,那么就会返回5和7元素的迭代器

    而返回的则用pair进行存放

    pair可以将2个值视为一个单元

    pair两个值的类型可以不一样

    pair.first是第一个成员变量的类型

    pair.second是第二个成员变量的类型

    pair::iterator,set::iterator>=s1.equal_range(elem)

    类似与这样使用

    如果elem不存在,则根据编译器的不同会出现不同的结果

    map容器

    map不允许容器中有重复的key值元素 multimap允许容器中有重复的key值元素

    map

    multiple

    如map mapA;

    第一种插入方式

    map.insert(pair(3,"小张");)

    第二种插入元素,返回pair

    map.insert(pair(3,"小张"))

    直接插pair

    第三种通过value_type

    map.insert(map)::value_type(1,"小李");

    第四种

    通过数组的方式插入

    map[3]="小刘"

    但是这种会先去删除已有的对象。而前面的方法不会。

    map容器对象获取键对应的值

    第一种使用[]

    第二种使用find()Hanshu1.成功返回对应的迭代器,失败返回end()的迭代器

    第三章使用at()函数,如果键值不存在就会抛出out_of_range异常

  • 相关阅读:
    a标签设置下划线动画
    计算机毕业设计 SSM超市收银管理系统 便利店收银管理系统 酒吧收银管理系统 酒店收银系统Java Vue MySQL数据库 远程调试 代码讲解
    ensp为啥数据无法通过防火墙(标签-安全|关键词-内网)(相关搜索:访问外网)
    Python-Opencv 识别滑块验证码缺口位置(四)
    计算机图形学之应用程序
    通过 Traefik Hub 暴露家里的网络服务
    Linux项目自动化构建工具:make/Makefile
    第19章 数据库备份与恢复
    Scrapy设置代理IP方法(超详细)
    Docker简介与安装
  • 原文地址:https://blog.csdn.net/qq_35639854/article/details/133499407