はじめに
この実験では、C++ の標準ライブラリ (STL) から Multiset を実装する方法を学びます。Multiset は、一意の値を格納するという点で Set に似ていますが、重複を許可し、vector に関連付けられたインデックス機能を提供しないという点で Set と異なります。
この実験では、C++ の標準ライブラリ (STL) から Multiset を実装する方法を学びます。Multiset は、一意の値を格納するという点で Set に似ていますが、重複を許可し、vector に関連付けられたインデックス機能を提供しないという点で Set と異なります。
以下のコマンドを使用して、~/project ディレクトリに main.cpp という名前の新しいファイルを作成します。
touch ~/project/main.cpp
以下の例のように、Multiset、入出力ストリーム、標準ライブラリ、およびイテレータのヘッダーファイルを追加します。
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
以下のように、整数値の Multiset を宣言します。
multiset<int> s;
以下の例のコードのように、insert() メソッドを使用して要素を Multiset に挿入します。これにより、5、39、5、82、39、および 54 が Multiset に挿入されます。
s.insert(5);
s.insert(39);
s.insert(5);
s.insert(82);
s.insert(39);
s.insert(54);
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;
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 を走査する方法も学びました。最後に、ターミナルを使用してコードを実行し、コンパイルして出力を確認しました。