C++ でのセット

セット (設定) —追加された要素を自動的に昇順に並べ替えるコンテナです。ただし、同じ値を追加する場合、set はそのインスタンスを 1 つだけ保存します (multiset - multiset- には重複が含まれる場合があります)。新しい要素がセットに追加されると、並べ替え順序に違反しないように、要素はすぐに所定の位置に配置されます。  

C++ のセットは、クラス set (multiset) を通じて STL 標準テンプレート ライブラリで定義されます。

セットは赤と黒のバイナリ ツリーです。検索、削除、挿入の操作は対数的な複雑さになります。
 
セットを使用するには、“set” ライブラリを含める必要があります。 #include <セット>
セット宣言:
set<int> mySet; // 空のセットを宣言します。 マルチセット mySet; // 空のマルチセットを宣言します。  
セット (セット) を操作するための関数
 
empty() - コンテナ内に要素が存在しないことをチェックします
 
size() - コンテナ内の要素の数を返します
 
clear() - コンテナをクリアします
 
insert() - 要素を挿入します
 
erase() - 要素を削除します
 
count() - 指定されたキーに一致する要素の数を返します
 
find() - 特定のキーを持つ要素を検索します
 
lower_bound() - 指定された値以上の最初の要素へのイテレータを返します
 
upper_bound() - 指定された値より大きい最初の要素への反復子を返します
 

 
セットとマルチセットの例
#include <iostream> #include <セット> 名前空間 std を使用します。 int main() { set<int> mySet1; // 空のセットを宣言します マルチセット mySet2; // 空のマルチセットを宣言します // セットに要素を追加します mySet1.insert(1); mySet1.insert(2); mySet1.insert(3); mySet1.insert(1); // マルチセットに要素を追加します mySet2.insert(1); mySet2.insert(2); mySet2.insert(3); mySet2.insert(1); set<int>::イテレータ it; //イテレータを作成する for(it = mySet1.begin(); it != mySet1.end(); it++) { // すべての要素を表示 cout << (*それ) << " "; // セット } cout <<エンドル; for(it = mySet2.begin(); it != mySet2.end(); it++) { // すべての要素を出力します cout << (*それ) << " "; // マルチセット } 0 を返します。 }

コンパレータで set  を使用する
降順で順序付きセットを作成するコンパレータの例。 構造体 cmp { bool 演算子() (int a, int b) const{ >を返すb; } };
set を作成するときにコンパレータを使用します。 を設定します。 s;