C++ では、std::unordered_set
これは順序付けされていないコレクション コンテナーであり、ハッシュ テーブルを使用して実装され、特定の並べ替え基準に従って要素を格納しません。std::unordered_set
コンテナ内の要素は一意であり、重複は許可されません。
std::unordered_set
insert
コンテナに要素を挿入するための関数を提供します。insert
この関数にはオーバーロードされたバージョンがいくつかありますが、最も一般的に使用されるバージョンは 1 つの引数、つまり挿入する要素を受け取ります。
関数が呼び出されると、指定された要素をコンテナーinsert
に挿入しようとします。std::unordered_set
挿入が成功し、その要素が以前にコンテナーに存在しなかった場合、挿入操作が実行され、挿入が成功したことを示すのメンバーを持つstd::pair
オブジェクトが返されます。挿入される要素が既にコンテナーに存在する場合、挿入操作は実行されず、返されるオブジェクトのメンバーはであり、挿入が失敗したことを示します。.second
true
std::pair
.second
false
.first
std::pair
オブジェクトの最初の要素を参照します。set.insert(head)
の返された結果には、に挿入された要素、またはすでに存在する要素を.first
指す反復子が格納されます。set
この反復子を使用して、要素にさらにアクセスしたり操作したりできます。
std::unordered_set
この関数の使用方法を示すサンプル コードを次に示しますinsert
。
#include <iostream>
#include <unordered_set>
int main() {
std::unordered_set<int> mySet;
int value = 42;
auto result = mySet.insert(value);
if (result.second) {
std::cout << "Insertion successful. " << value << " is a new element." << std::endl;
} else {
std::cout << "Insertion failed. " << value << " already exists in the unordered set." << std::endl;
}
return 0;
}
上記の例では、mySet
値を持つ要素が .html ファイル内に存在しない場合、42
挿入操作は成功します。挿入が成功した場合はresult.second
となりtrue
、挿入された要素が新しい要素であることを示します。mySet
値を持つ要素がすでに に存在する場合42
、挿入操作は失敗します。挿入が失敗した場合は となり、挿入された要素が既に存在することを示しますresult.second
。false
std::unordered_set
コンテナ内で挿入された要素の具体的な位置はハッシュ関数に従って計算されるため、この不規則性により不確実であることに注意してください。