1.set学ぶ:同じデータタイプを格納するための容器としてセットは、データセットからのデータ型であり、取り出しデータセット内の各要素の値は一意であり、システムは自動的に要素の値に応じことができソート。集合の要素数の値を直接変更することができないことに留意すべきです。非常に効率的に使用する内部容器セット、マルチセット、マップ、マルチマップに関連付けられた標準C ++ STLは、二分木検索をバランスさ:赤黒木、木になったRB(赤黒木)。STL関連する容器の内部構造は、それはバイナリ検索を使用してルックアップに設定されるRBの木統計的性能が良いことが一般的にバランスバイナリツリーよりも、それが選択されました。
二つの特徴を有する2.set:要素のセットがソートされ、要素のセットは、固有の、繰り返しません
3.一般的なツール:
INSERTは、(); // 要素の集合に挿入
(開始); // イテレータの最初の要素へのポインタを返す
エンド(); // セットエンドポイント、エンドを(戻り)の乱数である
クリア( ); //は、全ての要素がクリア
)(カウント; //は起因しない繰り返し要素セットに、一定の値の要素の数を返す、カウントが0,1戻される、すなわち要素がかどうかを決定する
(空); // コレクションは、trueに復帰空の場合は
ERASE(); // 要素が設定され、削除
のfind(); // 戻り要素は、イテレータをチェック見つけるためにポインタ
()LOWER_BOUND; // 戻りより大きいへのポインタ(または)にイテレータ特定の値の最初の要素と等しく
)(UPPER_BOUNDを; // イテレータ素子よりも値の大きいを返す
サイズ(); //要素の集合数
MAX_SIZE(); //は、最大限界収容できる要素のコレクションを返し
rbeginを(); //は逆イテレータコレクションの最後の要素へのポインタを返す
(レンド); //は、最初のセット内のポインタを返しますリバースイテレータ要素
挿入()+開始()+エンド()+()+消去()+サイズ()+のmax_size()空にする
1の#include <iostreamの> 2の#include <cstdioを> 3の#include < 設定 > 4の#include <アルゴリズム> 5 使って 名前空間STDを、 6 7 INT メイン() 8 { 9 セット < INT > S。 10 セット < 整数 > ::イテレータそれ。 11 s.insert(1 )。 12 s.insert(2 )。 13 s.insert(3 )。 14 s.insert(4); 15 s.insert(1 ); 16 。17 のための(それは= s.begin(); IT ++ ;! S.end IT =()){ 18である (printfの" %のD \ N- "、* IT); 19 } 20は 21れる のprintf(" SETサイズである:%D \ N- " 、s.size()); 22である (printfの" SETのMAXSIZE値:D%\ N- " 、s.max_size()); 23である のprintf(「セット内の最初の要素である:D%\ N- '、* s.begin()); 24 25 のIT = (s.end)を、 26のIS I - ; 27 のprintf(" セット内の最後の要素:%のD \ N- "、* IT); 28 29 s.erase(2 ); 30 ITは= (s.end)を、 31 AM IT - ; 32 のprintf (" セット内の最後の要素:%D \ N- '、* IT)を、 33は 34である s.erase(4 ); 35 ITは= s.end(); 36 IT - ; 37 のprintf(" 最後の設定要素:D%\ N- "、* IT); 38は 39 40 のために(!;それ= s.end();それは()をs.begin =それ++ ){ 41 のprintf(" %dの\ n "、* IT)。 42 } 43 であれば(s.empty())のprintf(" セット为空\ n " ); 44 他のprintf(" セット不为空\ N " ); 45 46 s.clear()。 47 であれば(s.empty())のprintf(" セット为空\ n " ); 48 他のprintf(" セット不为空\ N " ); 49 50 のprintf(" SETサイズである:%D \ N- " 、s.size()); 51である (printfの" SETのMAXSIZE値:D%\ N- " 、s.max_size();) 52が リターン 0 、 53です }