C++中的Multiset of Pairs及示例
什么是Multiset?
Multiset是一种关联式容器,它可以按特定顺序容纳多个元素。与Set不同,Multiset可以包含多个相同元素的出现。
一些与Multiset相关的函数:
- begin() : 返回Multiset中第一个元素的迭代器。
- end() : 返回在Multiset中最后一个元素之后的理论元素的迭代器。
- size() : 返回Multiset中元素的数量。
- max_size() : 返回Multiset可以容纳的最大元素数量。
- empty() : 返回Multiset是否为空。
什么是Pair?
C++中的Utility头文件为我们提供了Pair容器。Pair由两个数据元素或对象组成。
- 第一个元素被引用为“first”,第二个元素被引用为“second”,并且其顺序固定(first,second)。
- Pair用于组合两个可能不同类型的值。Pair提供了一种将两个异构对象作为单个单元存储的方法。
- Pair可以被分配、复制和比较。在默认情况下,映射或哈希图中分配的对象数组的类型为’pair’,其中所有’first’元素都是唯一的键,与它们的’second’值对象相关联。
- 要访问这些元素,我们使用变量名后跟点运算符后跟关键字first或second。
如何访问Pair?
使用点(.)运算符访问Pair的元素。
语法:
Pair的Multiset
Pair的Multiset是一个Multiset,其中每个元素本身就是一个Pair。如果相应的第一个和第二个元素相等,则认为两个Pair相等。如果需要存储一个Pair的多个副本,以及其他元素,而且还需要按特定顺序,此时Pair的Multiset就非常有用。
语法:
**multiset <pair<dataType1,dataType2>> myMultiset; **
在这里,
dataType1和dataType2 可以是相似或不同的数据类型。
示例1: 下面是一个C++程序的示例,演示了具有整数值的Pair的Multiset的工作方式。
输出:
时间复杂度: O(n* log n). //n是multiset中元素的个数。
空间复杂度: O(n).
解释:
在上面的输出中,元素按照multiset的对的排序顺序排列。
例2: 下面是演示具有字符串值的数字对链表的multiset的C++程序。
输出:
时间复杂度: O(n* log n)。//这里的n是一个multiset中的大小。
空间复杂度: O(n)。
解释:
以上输出中,元素按照multiset中对的排列顺序进行排序。