📜  C++ STL中的多集insert()函数(1)

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

C++ STL中的多集insert()函数

C++ STL(Standard Template Library)提供了许多容器和算法,使编程更加简单和高效。在容器中,多集(multiset)是一个非常有用的容器,它允许在一个集合中有多个相同的元素。本文将介绍 C++ STL 中多集的 insert() 函数。

1. insert() 函数简介

insert() 函数是用于向多集(multiset)中插入元素的函数。它有多种用法,可以插入一个元素,插入一个由迭代器定义的范围内的多个元素,或者插入一个初始化列表(initializer list)中的多个元素。下面是 insert() 函数的语法:

// 插入一个元素 val
multiset.insert(val);

// 插入起始迭代器 begin 到终止迭代器 end 之间的元素
multiset.insert(begin, end);

// 插入多个元素 {val1, val2, ... valn}
multiset.insert({val1, val2, ..., valn});
2. 单元素插入

下面是一个单元素插入的示例:

#include <iostream>
#include <set>

using namespace std;

int main()
{
    multiset<int> myset;

    // 添加元素
    myset.insert(10);
    myset.insert(20);

    // 显示元素
    for (auto iter = myset.begin(); iter != myset.end(); ++iter)
        cout << *iter << " ";
    
    return 0;
}

上面的代码创建了一个名为 myset 的多集,并向其中插入了两个元素:1020。在使用 C++ 的标准迭代器进行循环遍历时,可以看到多集中有两个相同的元素 1020。以下是输出结果:

10 20
3. 多元素插入

下面是一个多元素插入的示例:

#include <iostream>
#include <set>

using namespace std;

int main()
{
    multiset<int> myset;

    // 添加元素,插入多个元素
    myset.insert({10, 20, 30, 40, 50});

    // 显示元素
    for (auto iter = myset.begin(); iter != myset.end(); ++iter)
        cout << *iter << " ";
  
    return 0;
}

上面的代码创建了一个名为 myset 的多集,并向其中插入了五个元素:1020304050。在使用 C++ 的标准迭代器进行循环遍历时,可以看到多集中有多个相同的元素。以下是输出结果:

10 20 30 40 50
4. 迭代器范围插入

下面是一个迭代器范围插入的示例:

#include <iostream>
#include <set>

using namespace std;

int main()
{
    multiset<int> myset;

    // 创建一个 vector 容器
    vector<int> vec = {100, 200, 300, 400};

    // 将 vec 容器的元素迭代器范围添加到多集中
    myset.insert(vec.begin(), vec.end());

    // 显示元素
    for (auto iter = myset.begin(); iter != myset.end(); ++iter)
        cout << *iter << " ";
    
    return 0;
}

上面的代码创建了一个名为 myset 的多集,并向其中插入了一个 vector 容器中的四个元素:100200300400。在使用 C++ 的标准迭代器进行循环遍历时,可以看到多集中有多个相同的元素。以下是输出结果:

100 200 300 400
5. 总结

insert() 函数是用于向多集中插入元素的函数,它可以插入单个元素、多个元素和迭代器范围中的多个元素。在使用时,需要注意多集中可以有多个相同的元素。