![]() Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Использование стандартной библиотеки шаблонов
Стандартная библиотека шаблонов (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, поскольку эти тексты компилируются вместе с программой пользователя. Требуется также знакомство с механизмом шаблонов языка С++. Забиваем Сайты В ТОП КУВАЛДОЙ - Уникальные возможности от SeoHammer
Каждая ссылка анализируется по трем пакетам оценки: SEO, Трафик и SMM.
SeoHammer делает продвижение сайта прозрачным и простым занятием.
Ссылки, вечные ссылки, статьи, упоминания, пресс-релизы - используйте по максимуму потенциал SeoHammer для продвижения вашего сайта.
Что умеет делать SeoHammer
— Продвижение в один клик, интеллектуальный подбор запросов, покупка самых лучших ссылок с высокой степенью качества у лучших бирж ссылок. — Регулярная проверка качества ссылок по более чем 100 показателям и ежедневный пересчет показателей качества проекта. — Все известные форматы ссылок: арендные ссылки, вечные ссылки, публикации (упоминания, мнения, отзывы, статьи, пресс-релизы). — SeoHammer покажет, где рост или падение, а также запросы, на которые нужно обратить внимание. SeoHammer еще предоставляет технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Зарегистрироваться и Начать продвижение Практикум по теме Переделать программу, составленную при выполнении темы «Последовательности», под использование контейнеров из стандартной библиотеки шаблонов. 6.2. Требования к отчёту В отчёте по теме опишите набор подходящих контейнеров и выбранный способ их связи. Оцените предполагаемую временную сложность заданного набора операций с данными. Контрольные вопросы 1. Что такое стандартный контейнер библиотеки STL? Чем он отличается от обычного объекта? 2. Какой стандартный контейнер можно считать наиболее подходящим для работы с множествами? 3. Можно ли использовать стандартные контейнеры для множеств, на которых не определено отношение полного порядка? 4. Существуют ли ограничения на применение стандартных алгоритмов двуместных операций над множествами в контейнерах? 5. Можно ли реализовать двуместную операцию над множествами в контейнерах без применения стандартного алгоритма? 6. Можно ли выполнять операции над последовательностями для множеств, хранящихся в стандартном контейнере? 7. Можно ли обеспечить поддержку произвольных последовательностей в контейнере для множеств? 8. Какова ожидаемая временная сложность при выполнении стандартным алгоритмом операции объединения двух множеств в стандартных контейнерах set?
|