Skip to content

Latest commit

 

History

History
47 lines (30 loc) · 1.88 KB

File metadata and controls

47 lines (30 loc) · 1.88 KB

🗃️ HashSet

Хэш-множество, вдохновлённое C# HashSet<T>. Быстрая проверка на наличие элементов, добавление и преобразование в список. Поддерживает уникальные элементы с хэш-таблицей под капотом. 🚀


🔥 Основные методы

  • Insert(const ValueType& value) — добавляет элемент в множество.
  • Contains(ValueType& value) — проверяет, есть ли элемент в множестве.
  • ToList() — возвращает список всех элементов.
  • Clear() — очищает множество.
  • Size() — возвращает количество элементов.

💡 Зависимости: Всё, что нужно, импортируется через #include "cs/types.h". Никаких лишних #include!

🛠️ Операторы

  • << — вывод множества в поток как списка (через ToList()).

🎯 Пример

#include "cs/types.h"

int main() {
    HashSet<int> set = {1, 2, 3};
    set.Insert(4); // [1, 2, 3, 4]
    
    std::cout<< set.Contains(2) << '\n'; // 1 (true)
    set.Clear(); // []
}

💡 Особенности

  • Основано на Dictionary<ValueType, bool>, где значения — просто true.
  • Гарантирует уникальность элементов (дубликаты автоматически игнорируются).
  • Быстрые операции Insert и Contains благодаря хэшированию.
  • Поддержка любых типов, если они поддерживают хэширование и сравнение.
  • Красивый вывод через <<, как списки в Python.