はじめに
この実験では、STL における無順序多重集合(Unordered Multiset)の動作を示すための C++ プログラムを作成します。無順序多重集合の概念と C++ プログラミング言語におけるその実装について学びます。
ヘッダーファイルをインクルードする
このステップでは、プログラムに必要なヘッダーファイルをインクルードします。iostream と unordered_set のヘッダーファイルをインクルードします。
#include<iostream>
#include<unordered_set>
using namespace std;
多重集合とベクトルを表示する関数を定義する
このステップでは、無順序多重集合(Unordered Multiset)とベクトルの内容を表示するための 2 つの関数を定義します。
void showMultiset(unordered_multiset<int> s)
{
unordered_multiset<int>::iterator i;
for (i = s.begin(); i!= s.end(); i++)
{
cout << *i << " ";
}
}
void showVector(vector<int> v)
{
vector<int>::iterator i;
for (i = v.begin(); i!= v.end(); i++)
{
cout << *i << " ";
}
}
無順序多重集合を宣言して要素を追加する
このステップでは、無順序多重集合(Unordered Multiset)を宣言し、insert() メソッドを使っていくつかの要素で埋めます。
unordered_multiset<int> s;
s.insert(50);
s.insert(30);
s.insert(50);
s.insert(80);
s.insert(30);
s.insert(60);
無順序多重集合とそのサイズを表示する
このステップでは、showMultiset() 関数と size() メソッドを使って、無順序多重集合とそのサイズを表示します。
cout << "\n\nThe number of elements in the Unordered Multiset are: " << s.size();
cout << "\n\nThe elements of the Unordered Multiset are: ";
showMultiset(s);
ベクトルを使って無順序多重集合をソートして表示する
このステップでは、無順序多重集合の要素をベクトルにコピーしてソートします。そして、showVector() 関数を使って、ソートされた無順序多重集合の要素を表示します。
vector<int> v(s.begin(), s.end());
sort(v.begin(), v.end());
cout << "\n\nThe elements of the Unordered Multiset after sorting using a vector are: ";
showVector(v);
コードを実行する
このステップでは、g++ コマンドを使ってコードをコンパイルし、その後 ./a.out コマンドを使って実行します。
g++ main.cpp -o main &&./main
出力は以下のようになるはずです。
The number of elements in the Unordered Multiset are: 6
The elements of the Unordered Multiset are: 50 30 80 50 30 60
The elements of the Unordered Multiset after sorting using a vector are: 30 30 50 50 60 80
まとめ
この実験では、無順序多重集合(Unordered Multiset)の概念と、C++ での STL ライブラリを使った実装方法について学びました。無順序多重集合を宣言して初期化する方法、その内容を表示する方法、およびベクトルを使ってソートする方法を見ました。
この実験が楽しく、C++ の無順序多重集合の学習に役立ったことを願っています。



