📅  最后修改于: 2023-12-03 14:39:51.470000             🧑  作者: Mango
Multiset是C ++ STL中的容器之一,它是由C ++标准委员会所定义的。Multiset可以存储元素并且可以按任意顺序进行检索。Multiset与Set相似,不同之处在于可以存储重复元素。Multiset的底层实现是红黑树,它是一种自平衡的排序二叉树。Multiset的构造函数有多个,下面我们来逐一介绍。
Multiset的构造函数列表如下:
multiset <T> ms;
默认构造函数创建一个名为ms的空Multiset对象,其中T是Multiset中保存元素的数据类型。默认情况下,它是按递增顺序排列的。
multiset <T> ms2 (ms1);
这个构造函数创建了另一个名为ms2的Multiset对象,其中包含与ms1相同的元素。
multiset <T> ms (first, last);
这个构造函数创建一个名为ms的Multiset对象,并用[first,last)范围内的所有元素初始化它。这里,first是指向Multiset中第一个元素的指针,而last是指向最后一个元素后面一个元素的指针。
下面是一个演示Multiset构造函数的简单示例:
#include <bits/stdc++.h>
using namespace std;
int main() {
// 默认构造函数
multiset<int> ms1;
ms1.insert(1);
ms1.insert(2);
ms1.insert(3);
// 复制构造函数
multiset<int> ms2(ms1);
// 范围构造函数
vector<int> v{10, 20, 30};
multiset<int> ms3(v.begin(), v.end());
// 输出元素到控制台
cout << "ms1: ";
for (auto i:ms1) cout << i << " "; // 1 2 3
cout << endl;
cout << "ms2: ";
for (auto i:ms2) cout << i << " "; // 1 2 3
cout << endl;
cout << "ms3: ";
for (auto i:ms3) cout << i << " "; // 10 20 30
cout << endl;
return 0;
}
上面的代码创建了三个Multiset对象。ms1和ms2包含整数1、2和3,而ms3包含10、20和30。每个Multiset对象都是通过不同的构造函数创建的。
以上就是C++ STL Multiset构造函数的介绍,希望对你有所帮助!