コンテンツにスキップ

セット

std::set または std::unordered_set という型を使用すると 任意の型の集合を扱うことができます。

#include <set>

std::set<std::string> persons = {
    "Alice",
    "Bob"
};
#include <unordered_set>

std::unordered_set<std::string> persons = {
    "Alice",
    "Bob"
};

要素追加

insert() で要素を追加することができます。

persons.insert("Eve");

要素削除

erase() で要素を削除することができます。

persons.erase("Bob");

std::set と std::unordered_set の違い

std::set はキーでソートしてデータを管理するのに対し、 std::unordered_set はキーから計算するハッシュと呼ばれる値でデータを管理します。

キーの順番を保持したい場合を除いて、パフォーマンスは常に std::unordered_set の方が優れています。