C++的set / multiset容器

一、介绍

        C++的set容器又被称为集合,所有元素在被插入后都会自动排序

二、数据结构

        set / multiset属于关联式容器,底层数据结构是用二叉树实现的。

        其余的容器比如vectordequelist等为序列式容器,因为他们底层使用线性序列结构,里面存储的是元素本身。而关联式容器所存储的是键值对<key,value>,这种方式相比于线性序列数据检索效率更高

        常见的关联式容器有:map、set、multimap、multiset,这四种容器的共同点是:

使用红黑树 / 平衡搜索树作为其底层结构,容器中的元素是一个有序的序列

三、set与multiset的区别

3.1 二者插入元素的区别

set 不允许值相同的元素出现
multiset 允许相同的元素出现

         在插入元素的时候,set的insert函数会返回bool类型的值,来表示插入是否成功。

注意  其实set的insert返回值是一个pair类型的变量,其中包含着bool,也有别的值)

而multiset的insert函数不会返回任何值。

3.2 pair “对组”类型

        pair类型,称为对组类型。它是由两种类型的数据组合的,数据的类型是模板(由自己确定)

对组的初始化有以下两种形式:

pair<type1, type2> p(value1, value2);

创造一个第一个变量类型为type1,第一个值为value1

第二个变量类型为type2,第二个值为value2的对组对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值