📜  C++ STL-Multiset构造函数(1)

📅  最后修改于: 2023-12-03 14:39:51.470000             🧑  作者: Mango

C++ STL-Multiset构造函数

Multiset是C ++ STL中的容器之一,它是由C ++标准委员会所定义的。Multiset可以存储元素并且可以按任意顺序进行检索。Multiset与Set相似,不同之处在于可以存储重复元素。Multiset的底层实现是红黑树,它是一种自平衡的排序二叉树。Multiset的构造函数有多个,下面我们来逐一介绍。

构造函数列表

Multiset的构造函数列表如下:

1. 默认构造函数
multiset <T> ms;

默认构造函数创建一个名为ms的空Multiset对象,其中T是Multiset中保存元素的数据类型。默认情况下,它是按递增顺序排列的。

2. 复制构造函数
multiset <T> ms2 (ms1);

这个构造函数创建了另一个名为ms2的Multiset对象,其中包含与ms1相同的元素。

3. 范围构造函数
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构造函数的介绍,希望对你有所帮助!