Что хранит. Хранит разные значения: каждый элемент присутствует не более одного раза. Порядок элементов не гарантирован.
Для чего используют. Подходит для уникальных посетителей, списка допуска и проверки, встречался ли идентификатор раньше.
s.Add(x)
s.Contains(x)
s.Remove(x)
s.Count
foreach (int x in s)
Для примера нужны using System; и using System.Collections.Generic;. Код выполняется внутри Main.
using System;
using System.Collections.Generic;
Main
HashSet<int> ids = new HashSet<int>(); ids.Add(7); ids.Add(9); ids.Add(7); // Повтор не создаёт новый элемент. Console.WriteLine(ids.Count); Console.WriteLine(ids.Contains(9)); ids.Remove(9); Console.WriteLine(ids.Contains(9));
Вывод:
2 True False
Важно. Множество не хранит количество повторений и не предоставляет доступ по индексу. Для вывода по возрастанию создайте List<int> из множества и вызовите Sort().
Система хранит идентификаторы пользователей, которым разрешён доступ. Изначально список допуска пуст. Повторное добавление не создаёт копию пользователя. Удаление отсутствующего пользователя не меняет состояние.
ADD id
REMOVE id
HAS id
COUNT
Первая строка содержит q. Затем идут q команд, по одной в строке.
Для каждой команды выведите ответ из таблицы.
Не выводите приглашения к вводу и пояснения. Служебные слова в ответах пишите в указанном регистре.
1 ≤ q ≤ 100000; идентификатор id от 1 до 10⁹.
9 ADD 10 ADD 10 COUNT HAS 10 REMOVE 10 REMOVE 10 HAS 10 COUNT ADD 10
ADDED EXISTS 1 YES REMOVED MISSING NO 0 ADDED
4 HAS 7 REMOVE 7 ADD 7 HAS 7
NO MISSING ADDED YES
3000 ms 256 Mb Правила оформления программ и список ошибок при автоматической проверке задач