首页 > 编程语言 >C++ STL set/multiset容器

C++ STL set/multiset容器

时间:2024-09-06 09:47:40浏览次数:8  
标签:容器 set 迭代 STL 元素 key multiset

set/multiset容器

简介

Set的特性是,所有元素都会根据元素的值自动被排序。Set不允许两个元素有相同的值。

Set的迭代器iterator是一种const_iterator,不能通过迭代器改变任意set元素的值。

multiset的特性和用法和set相同,唯一的差别在于它允许值重复。

set和multiset的底层实现是红黑树,红黑树是平衡二叉搜索树的一种。

set/multiset容器常用操作

构造函数

set<T> st;//set默认构造函数:
mulitset<T> mst; //multiset默认构造函数: 
set(const set &st);//拷贝构造函数

set赋值

set& operator=(const set &st);//重载等号操作符
swap(st);//交换两个集合容器

set大小操作

size();//返回容器中元素的数目
empty();//判断容器是否为空

插入和删除操作

insert(elem);//在容器中插入元素。
clear();//清除所有元素
erase(pos);//删除pos迭代器所指的元素,返回下一个元素的迭代器。
erase(beg, end);//删除区间[beg,end)的所有元素 ,返回下一个元素的迭代器。
erase(elem);//删除容器中值为elem的元素。

查找操作

find(key);//查找键key是否存在,若存在,返回该键的元素的迭代器;若不存在,返回set.end();
count(key);//查找键key的元素个数
lower_bound(keyElem);//返回第一个key>=keyElem元素的迭代器。
upper_bound(keyElem);//返回第一个key>keyElem元素的迭代器。
equal_range(keyElem);//返回容器中key与keyElem相等的上下限的两个迭代器。

对组

对组(pair)将一对值组合成一个值,这一对值可以具有不同的数据类型,两个值可以分别用pair的两个公有属性firstsecond访问。

类模板:`template <class T1, class T2> struct pair.

创建队组

//第一种方法创建一个对组
pair<string, int> pair1(string("name"), 20);
cout << pair1.first << endl; //访问pair第一个值
cout << pair1.second << endl;//访问pair第二个值
//第二种
pair<string, int> pair2 = make_pair("name", 30);
cout << pair2.first << endl;
cout << pair2.second << endl;
//pair=赋值
pair<string, int> pair3 = pair2;
cout << pair3.first << endl;
cout << pair3.second << endl;

标签:容器,set,迭代,STL,元素,key,multiset
From: https://www.cnblogs.com/1873cy/p/18399657

相关文章

  • GROUPING_SETS 用法
    在Hive中,`GROUPINGSETS`是一个用于生成多个分组聚合的SQL功能,它可以让你在一个查询中指定多个分组集,这样可以有效地生成多维度的汇总数据。下面我将通过一个例子来展示如何使用`GROUPINGSETS`,并创建一个Hive表以及插入十条数据进行演示。###步骤1:创建Hive表首先,我们创建......
  • 【Day06-集合-Collection&List&Set】
    集合        集合框架概述        Java集合框架(JavaCollectionFramework,JCF)是Java编程语言的一部分,它提供了一种存储和操作一组对象的方式。这个框架的设计目标是提供一组标准的数据结构来帮助开发者更有效地管理数据。        接口与实现接口......
  • 『功能项目』AssetBundle上传加载u3d模型【23】
    本章开始做游戏的登陆界面,运用热更新的AssetBundle上传加载u3d模型首先在22骑乘坐骑项目基础上重新创建一个场景重命名为RegistrationUI在资源商店下载一个场景选择一个免费资源场景导入进入新导入的场景完全解压缩后重命名为ResUIScene将颜色调成为蓝色调删......
  • 第四天 Pytset 测试框架
    一、Pytset介绍pytest是一个用于Python的开源测试框架,支持简单、灵活且功能强大的单元测试、功能测试和集成测试。它是目前最流行的Python测试工具之一,具有易用性和丰富的功能pytest使用简单的命名规则,测试函数的名称必须以test_开头,便于框架自动识别和执行pytest ......
  • 第16篇 如何制作自己的安装程序--使用InnoSetupPE工具
    1.安装去官网下载最新版本:https://jrsoftware.org/isdl.php#stable2.进入应用主界面3.点击file》New【开始打包】直接next4.填写相关数据直接点next5.根据要求填写,然后直接next6.这里默认不改,然后直接next7.这里也默认不改,然后直接next8.这里为空,可以不填,然后......
  • arm内核(core),arm微内核(microarchitecture),arm结构(architecture),arm指令集(instruct
    References:初识ARM(内核、SoC)一文彻底分清ARM架构、内核、指令集等相关概念【ARM】(1)架构简介什么是ARM、Cortex、SOC、arm架构、ARMv7、ARM指令集?超详细!!!!Learnthearchitecture-IntroducingtheArmarchitecture微架構-wikipediaInstructionsetarchitectureMicro......
  • C++ STL queue容器——队列
    queue容器基本概念queue是一种**先进先出的数据结构,它有两个出口,queue容器允许从一端新增元素,从另一端移除元素。queue容器没有迭代器,所有元素进出都必须符合“先进先出”条件,只有顶端的元素才有机会被外界取用,所以也不提供遍历功能。queue容器常用操作构造函数queue<T>qu......
  • C++ STL stack容器——栈
    stack容器基本概念stack是一种先进后出的数据结构,它只有一个出口,形式如下图所示。stack容器允许新增元素,移除元素,取得栈顶元素,但是除了最顶端外,没有任何地方可以存取stack的娶她元素。换句话说,stack不允许有遍历行为。元素推入栈的操作称为push,将元素推出栈的操作称为pop。st......
  • 【python】本地local_setting设置与上传仓库
    1.我们在开发过程中,有的配置数据不希望别人看到,例如:数据库信息2.如是我们可以在本地配置一个local_setting.py文件2.1:在setting中最后,导入local_settingtry:from.local_settingimport*exceptImportError:pass2.2:将自己的配置数据,写入到local_setting......
  • 内存管理、模块初阶、STL简介
    内存管理定位new表达式定位new表达式是在已分配的原始内存空间中调用构造函数初始化一个对象。new(place_address)type或者new(place_address)type(initializer-list)place_address必须是一个指针,initializer-list是类型的初始化列表使用场景:定位new表达式在实......