ディレクトリ
2.2。新しい要素を追加する(同じ要素は挿入できないことに注意)
1.定義
unordered_setの本質は、ハッシュハッシュを使用してデータを格納することです。これは、ハッシュ値をキーとして使用するコンテナーであるため、検索、挿入、削除が頻繁に行われる場合は、一定の時間を保ちます。unordered_setストレージの原則は、n個のバケットを持つデータ構造を宣言し、unordered_setに追加される新しい値のハッシュを計算し、次にhash%nの後に値xを計算し、新しい値をバケットxに追加することです。バケットxにすでに要素がある場合、その要素は直接後ろにリンクされます。データ構造内の要素の数が特定の数に達すると、バケットの数を増やしてバケット構造を再構築する必要があります。
2.基本機能
2.1。Unordered_setの構築
- std :: unordered_set <std :: string> c:コンテナを初期化する
- std :: unordered_set <std :: string> c {"aaa"、 "bbb"、 "ccc"}:コンテナーを初期化し、コンテナーに "aaa"、 "bbb"、 "ccc"を追加します
- std :: unordered_set <std :: string> c {16}:コンテナを初期化し、16バケットを設定します
2.2。新しい要素を追加する(同じ要素は挿入できないことに注意)
- c.insert( "dddd"):コンテナに要素 "dddd"を追加します
- a.insert({"aaa"、 "bbbb"、 "cccc"}):向容器添加元素 "aaa"、 "bbbb"、 "cccc"
- a.insert(b.begin()、b.end()):bはaと同じタイプの要素を格納するベクトルであり、bのすべての要素をaに追加できます
2.3。要素を見つける
- a.find( "eeee"):要素 "eeee"を検索すると、返される結果はa.end()であり、見つからなかったことを意味します。それ以外の場合、対応する要素は
- a.count( "eeee"):aの "eeee"にあるいくつかの要素を検索します
2.4。バケットインターフェースの検索
- a.bucket_count():データ構造内のバケットの数を返します
- a.bucket_size(i):バケットiのサイズを返します
- a.bucket( "eeee"):要素 "eeee"が含まれるバケットを返します
2.5。オブザーバー
- a.hash_function()( "aaa"): "aaa"に対応するハッシュ値を返します
- a.key_eq()( "aaa"、 "aaaa"):要素が同じ場合はtrueを返し、それ以外の場合はfalseを返します
2.6。要素をクリアする
- a.clear():a内のすべての要素をクリアします
- a.erase( "aaa"):要素 "aaa"をクリアする
2.7。その他の機能
- a.size():aの要素の総数を返します
- a.max_size():aの最大の要素を返します
- a.empty():aが空かどうかを判別
(続く)