在C++中使用示例的元组的Multiset
什么是元组?
在C++中,元组是将一组元素绑定在一起的对象。这些元素可以是相似的,也可以是不同的数据类型。元组的元素按访问顺序初始化。
语法:
**tuple <data_type1, data_type2, dataType3, ….> myTuple **
在这里,
dataType1,dataType2,dataType3……是类似的或不同的数据类型
与元组相关的函数:
1. make_tuple(): make_tuple()用于分配具有值的元组。传递的值应按tuple中声明的值的顺序排列。
语法:
myTuple = make_tuple(value1, value2, value3,….)
2. get(): get()用于访问元组值并修改它们,它接受索引和元组名称作为访问特定元组元素的参数。
语法:
get <index>(myTuple)
在这里,
index是我们要访问myTuple中的元素的索引。在元组中索引从零开始。
什么是multiset?
multiset是一种类似于set的关联容器类型,但在multiset的情况下,所有元素都必须成对不同。简单地说,可以有多个具有相同值的元素。
语法:
multiset <dataType> myMultiset;
在这里,
dataType是数据类型。
与multiset相关的函数:
- begin(): 返回multiset中的第一个元素的迭代器。
- end(): 返回multiset中最后一个元素之后的理论元素的迭代器。
- size(): 返回multiset中的元素数量。
- max_size(): 返回multiset可以容纳的最大元素数。
- empty(): 返回multiset是否为空。
元组的multiset在算法需要复杂数据结构时非常有用。本文介绍了如何在C++中创建元组的multiset。请注意,为简单起见,考虑了三个元素的元组,但元组也可以包含更多或更少的元素。
元组的multiset
元组的multiset是其中每个元素都是元组的multiset。
语法:
**multiset <tuple<dataType1, dataType2, dataType3>> multisetOfTuples; **
在这里,
dataType1,dataType2,dataType3是类似的或不同的数据类型。
示例1: 下面是实现元组的multiset的C++程序:
输出:
说明:
在上述输出中,多重集合中总共有五个元组,其中 (2, 3, 5) 和 (4, 2, 3) 重复出现两次。默认情况下,元组按非降序排列在多重集合中,并遵循以下逻辑:
- 在多重集合中,如果两个元组的第一个值相等,则比较元组的第二个值,如果它也相等,则比较第三个值。
- 但是,始终可以将比较器传递给集合。
示例2: 下面是一个C++程序,演示将比较器传递给多重集合,以按非升序排列多重集合元素。
输出:
时间复杂度: O(n log n)。 // n是插入到多重集合中的元组数。
辅助空间: O(n)。
说明:
在上面的输出中,多重集合中的元素按照非升序排列。具有值为(2, 3, 5)的元组在多重集合中有两个副本。