Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






  • Сервис онлайн-записи на собственном Telegram-боте
    Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое расписание, но и напоминать клиентам о визитах тоже. Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.
    Для новых пользователей первый месяц бесплатно.
    Чат-бот для мастеров и специалистов, который упрощает ведение записей:
    Сам записывает клиентов и напоминает им о визите;
    Персонализирует скидки, чаевые, кэшбэк и предоплаты;
    Увеличивает доходимость и помогает больше зарабатывать;
    Начать пользоваться сервисом
  • Использование стандартной библиотеки шаблонов






    Стандартная библиотека шаблонов (STL) поддерживает большинство типовых операций со структурами данных.

    В первую очередь нам понадобятся последовательные контейнеры vector, list и deque и их производные (адаптеры) stack и queue, а также ассоциативные контейнеры map, set, multimap, multiset.

    Каждому контейнеру соответствует заголовочный файл, который нужно подключать директивой # include.

    Контейнеры map и set хранят множества в виде дерева двоичного поиска с автобалансировкой (красно-чёрное дерево). Контейнер set хранит множество ключей, а map — пары < ключ, значение>, причём все ключи в них уникальны. Для множеств с повторениями используются контейнеры multimap и multiset. При просмотре всех этих контейнеров их содержимое выдаётся в виде упорядоченной последовательности (внутренний обход дерева двоичного поиска).

    Современные системы программирования на С++ стали поддерживать и контейнеры с множествами в форме хеш-таблиц. Так, например, в библиотеке Visual C++ 2010 имеются контейнеры hash_map и hash_set. В стандарте C++11 эти контейнеры были узаконены под названиями unordered_map и unordered_set. В таком виде они поддерживаются в оболочке Visual C ++ 2012.

    При просмотре этих контейнеров будет выдана неупорядоченная последовательность ключей.

    Подробнее см. [7], с. 295–368, [8], с. 623–702, [10], с. 835–962. Полезно также посмотреть библиотечные файлы в каталоге include компилятора C++: только там содержится исчерпывающая информация о том, какие на самом деле объявляются классы и какие функции-члены они содержат. Информация в литературных источниках, как правило, запаздывает и содержит неточности. Важно и то, что в сообщениях компилятора об ошибках обычно присутствует информация из текстов каталога include, поскольку эти тексты компилируются вместе с программой пользователя. Требуется также знакомство с механизмом шаблонов языка С++.

    Практикум по теме

    Переделать программу, составленную при выполнении темы «Последовательности», под использование контейнеров из стандартной библиотеки шаблонов.

    6.2. Требования к отчёту

    В отчёте по теме опишите набор подходящих контейнеров и выбранный способ их связи. Оцените предполагаемую временную сложность заданного набора операций с данными.

    Контрольные вопросы

    1. Что такое стандартный контейнер библиотеки STL? Чем он отличается от обычного объекта?

    2. Какой стандартный контейнер можно считать наиболее подходящим для работы с множествами?

    3. Можно ли использовать стандартные контейнеры для множеств, на которых не определено отношение полного порядка?

    4. Существуют ли ограничения на применение стандартных алгоритмов двуместных операций над множествами в контейнерах?

    5. Можно ли реализовать двуместную операцию над множествами в контейнерах без применения стандартного алгоритма?

    6. Можно ли выполнять операции над последовательностями для множеств, хранящихся в стандартном контейнере?

    7. Можно ли обеспечить поддержку произвольных последовательностей в контейнере для множеств?

    8. Какова ожидаемая временная сложность при выполнении стандартным алгоритмом операции объединения двух множеств в стандартных контейнерах set?

     

     






    © 2023 :: MyLektsii.ru :: Мои Лекции
    Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
    Копирование текстов разрешено только с указанием индексируемой ссылки на источник.