C++ STL 中的 Multiset

C++C++Beginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

在本实验中,我们将学习如何在 C++ 中实现标准库(STL)中的 Multiset。Multiset 与 Set 类似,它存储唯一的值,但与 Set 不同的是,它允许重复值,并且不提供与 vector 相关的索引功能。

在项目目录中创建一个 C++ 文件

我们将在 ~/project 目录中使用以下命令创建一个名为 main.cpp 的新文件:

touch ~/project/main.cpp

添加头文件

为 Multiset、输入/输出流、标准库和迭代器添加以下头文件,如下例所示:

#include <iostream>
#include <bits/stdc++.h>
using namespace std;

声明 Multiset

声明一个存储整数值的 Multiset,如下所示:

multiset<int> s;

向 Multiset 中插入值

使用 insert() 方法向 Multiset 中插入元素,如下例代码所示。它将向 Multiset 中插入 5、39、5、82、39 和 54:

s.insert(5);
s.insert(39);
s.insert(5);
s.insert(82);
s.insert(39);
s.insert(54);

打印 Multiset 的大小并遍历 Multiset

通过访问 size() 属性打印 Multiset 中的元素数量,并使用迭代器遍历 Multiset 中的所有元素,如下所示:

cout << "The number of elements in the Multiset : " << s.size() << "\n";

multiset<int>::iterator it;
cout << "\nElements of the Multiset : ";
for (it = s.begin(); it != s.end(); it++)
    cout << *it << " ";
cout << endl;

删除小于 X 的元素

使用 erase() 方法删除所有小于给定值 x 的元素。erase() 方法会删除从 Multiset 开始到给定值之间的所有元素,但不包括给定值的元素,如下所示:

s.erase(s.begin(), s.find(x));

运行和编译程序

使用终端编译程序。使用以下命令编译程序:

g++ main.cpp -o main && ./main

检查输出

成功运行程序后,你将得到以下输出:

The number of elements in the Multiset : 6

Elements of the Multiset : 5 5 39 39 54 82

总结

本实验通过使用 STL 介绍了 C++ 中的 Multiset。我们学习了如何声明 Multiset、向其中插入值,并探索了其方法。我们还学习了如何删除小于特定值的元素,以及如何使用迭代器遍历 Multiset。最后,我们通过终端运行并编译代码以检查输出。

您可能感兴趣的其他 C++ 教程