Библиотека стандартных шаблонов (STL) ( Standard Template Library) набор согласованных обобщённых алгоритмов, контейнеров, средств доступа к их содержимому.

Презентация:



Advertisements
Похожие презентации
Стандартная библиотека шаблонов (STL) Контейнеры –структуры для хранения данных. Алгоритмы – шаблонные универсальные функции для обработки данных Итераторы.
Advertisements

Деревья и их представление в STL Презентацию подготовила Чиркова Ольга, 2 подгруппа, группа 271ПИ.
Лекция 29. Введение в STL (часть 4) Красс Александр СПбГУ ИТМО, 2009.
Базовые структуры данных. STL Заикин Олег Сергеевич zaikin.all24.org
Ограничение целостности CHECK задает диапазон возможных значений для столбца. Ограничение целостности CHECK задает диапазон возможных значений для столбца.
1 Лекция 5 Абстрактные структуры данных. 2 Таблицы Таблица – это набор элементов, содержащих ключ – отличительный признак для поиска элементов, и тело.
Технология хранения, поиска и сортировки информации в базах данных
Основные концепции стандартной библиотеки шаблонов. Липкин Николай.
База данных (БД) – Совокупность определённым образом организованной информации на определённую тему (в рамках определённой предметной деятельности); Организованная.
Коллекции классов Лекция 12. С помощью коллекций вместо создания структур данных программист использует готовые структуры данных, не заботясь об их реализации.
Основы информатики Массивы. Указатели. Заикин Олег Сергеевич
Объектно-ориентированное программирование С++. Лекция 9 Карпов В.Э.
Использование STL. Преимущества STL увеличение скорости написания программ гарантированное отсутствие ошибок универсальность (независимость от типов данных)
1 Java 10. КОЛЛЕКЦИИ Основные концепции. Интерфейсы. Списки.
Лекция 23. Шаблоны (часть 3) Красс Александр СПбГУ ИТМО, 2008.
Подготовила: Бовина Елена М-063. это информационная модель, позволяющая в упорядоченном виде хранить данные о группе объектов, обладающих одинаковым набором.
Разработка на CUDA с использованием Thrust Михаил Смирнов.
Лекция 26. Введение в STL (часть 3) Красс Александр СПбГУ ИТМО, 2009.
Модуль 1. Математические основы баз данных и знаний.
Файловый тип данных Turbo Pascal Операции для работы с файлами 11 класс.
Транксрипт:

Библиотека стандартных шаблонов (STL) ( Standard Template Library) набор согласованных обобщённых алгоритмов, контейнеров, средств доступа к их содержимому и различных вспомогательных функций в C++.

Ядро библиотеки состоит из шаблонных классов: * Контейнеры; * Алгоритмы; * Итераторы. А так же STL поддерживает распределители памяти, предикаты и функции сравнения.

Распределитель памяти (allocator) – управляет процессом выделения памяти для контейнера; является объектом класса allocator. Предикат – функция, возвращающая болевое или целое значение. Значение true включает в себя любые значения отличные от нуля, false – ноль. По количеству переменных предикаты бываю унарные и бинарные. Функция сравнения - специальный тип бинарного предиката, для сравнения двух аргументов; если первый аргумент меньше второго то возвращается значение true.

Библиотека содержит пять основных видов компонентов: * алгоритм (algorithm): определяет вычислительную процедуру(инициализации, сортировки, поиска и замены содержимого контейнера). * контейнер (container): объект для хранения других объектов; так же может определяться ассоциативный контейнер позволяющий с помощью ключей получать быстрый доступ к парам(ключ/значение), что позволяет ключу получить соответствующие значение. * итератор (iterator): обеспечивает для алгоритма средство доступа к содержимому контейнера (работают примерно так же как и указатели предоставляют доступ к элементам массива). * функциональный объект (function object): инкапсулирует функцию в объекте для использования другими компонентами. * адаптер (adaptor): адаптирует компонент для обеспечения различного интерфейса.

Итераторы произвольного доступа – используются для считывания и записи значений. Доступ к элементам произвольный. Однонаправленный итератор – используется для считывания и записи значений, может перемещаться по контейнеру в одном направлении. Двунаправленный итератор - используется для считывания и записи значений, может перемещаться по контейнеру в обоих направлениях. Ввода – используется только для считывания значений, может перемещаться по контейнеру только в одном направлении. Вывода - используется только для записи значений, может перемещаться по контейнеру только в одном направлении.

Работа с итераторами такая же, как и работа с указателями. К ним можно применять операции инкременты(увеличение на единицу) и декременты(уменьшения на единицу). К ним можно применять оператор разыменования(*). Тип итераторов(iterator) объявляется в различных контейнерах. Обратные итераторы – это итераторы, которые перемещаются по контейнеру в обратном направлении, они могут быть либо двух направленными, либо итераторами произвольного доступа. В дополнении к заголовочным файлам разнообразных классов- контейнеров, в стандартную библиотеку включены заголовки и предназначенные для поддержки классов- шаблонов.

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

Контейнеры – это объект, который предназначен для хранения других объектов.

Последовательные контейнеры – в них осуществляется последовательные или произвольный доступ к элементам. Контейнер vector ведет себя как массив, но может автоматически увеличиваться по мере необходимости.Он поддерживает прямой доступ и связанное хранение и имеет очень гибкую. Контейнер array представляет из себя массив фиксированного значения в нём содержатся элементы, строго идущие друг за другом.

Контейнер deque (двусторонняя очередь) обеспечивает быструю вставку и удаление в начале и в конце контейнера.Он, как и контейнер vector, обладает преимуществами прямого доступа и гибкой длины, но не обеспечивает связанное хранение. Контейнер list это двунаправленный список, который обеспечивает двунаправленный доступ, быструю вставку и удаления в любом месте контейнера, но не поддерживает прямой доступ к элементам контейнера. Контейнер forward_list однонаправленный список. Это версия контейнера list только с доступом в прямом направлении.

Ассоциативные контейнеры – получают доступ к элементам по ключу. Контейнер map состоит из пар "ключ-значение". Ключ используется для упорядочивания последовательности, а значение связано с ключом. set это контейнер уникальных элементов, упорядоченных по возрастанию. Каждое его значение также является и ключом. Контейнеры map и set разрешают вставку только одного экземпляра ключа или элемента. Если необходимо включить несколько экземпляров элемента, следует использовать контейнер multimap или multiset.