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

Стандартная библиотека шаблонов (STL). Назначение и состав библиотеки. Контейнеры. Последовательные контейнеры. Векторы.

Читайте также:
  1. B) назначение сердечных гликозидов
  2. II. Составление ИОМ.
  3. III. Изучение геологического строения месторождений и вещественного состава руд
  4. V. Условия проведения игры и состав команд.
  5. А следующие уровни тонких составляющих?
  6. Адаптационная составляющая и личность
  7. Адаптационная составляющая и личность

До сравнительно недавнего времени в языке C++ не было других стандартных средств программирования, кроме старой библиотеки стандартных функций С, которая совершенно не использовала мощных нововведений, таких, как классы, шаблоны, inline-функции и исключения. Библиотека стандартных шаблонов (Standard Template Library), разработанная в HP Laboratories, явилась в свое время весьма удачным шагом в решении проблемы стандартной библиотеки ANSI C++, в которую она теперь и входит.

Это весьма обширное собрание структур данных и алгоритмов общего назначения, которое позволяет решать самые различные задачи обработки наборов данных.

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

Библиотека стандартных шаблонов до включения в стандарт C++ была сторонней разработкой, вначале — фирмы HP, а затем SGI. Стандарт языка не называет её «STL», так как эта библиотека стала неотъемлемой частью языка, однако многие люди до сих пор используют это название, чтобы отличать её от остальной части стандартной библиотеки (потоки ввода-вывода (iostream), подраздел Си и др.).

Проект под названием STLPort, основанный на SGI STL, осуществляет постоянное обновление STL, iostream и строковых классов. Некоторые другие проекты также занимаются разработкой частных применений стандартной библиотеки для различных конструкторских задач. Каждый производитель компиляторов C++ обязательно поставляет какую-либо реализацию этой библиотеки, так как она является очень важной частью стандарта и широко используется.

Архитектура STL была разработана Александром Степановым и Менг Ли.

Стандартная библиотека шаблонов (Standard Template Library - STL) языка С++ объединяет в себе контейнерные типы данных, алгоритмы для их обработки данных, итераторы для обращения к элементам или последовательностям в контейнера. STL также содержит набор шаблонов для обеспечения стандартного ввода-вывода.

 

Слово «стандартная» обозначает, что данная библиотека является частью стандарта языка С++ и должна рассматриваться, как первая альтернатива при выборе методов и средств работы с данными и потоками ввода-вывода.

 

Слово «шаблонов» обозначает, что вся библиотека построена на шаблонах классов и функций, что обеспечивает возможность унифицированной работы с различными типами данных. Использование шаблонов в библиотеке позволяет не только одинаково обрабатывать встроенные типы С++, но и работать с пользовательскими типами данных, которые не были известны в момент разработки библиотеки.

 

STL обладает рядом преимуществ:

· Код библиотеки написан профессиональными программистами, проверен и отлажен. Вам не придётся искать ошибки в реализации контейнеров или алгоритмов STL. Скорее, ошибки будут связаны с неверным пониманием концепций STL, но это вопрос опыта использования.

· Код библиотеки написан очень эффективно с точки зрения использования оперативной памяти и быстродействия для типовых вариантов применения.

· Библиотека предлагает унифицированный интерфейс, однообразный для всех контейнеров и алгоритмов, что после получения навыка использования библиотеки позволяет значительно повысить читаемость программы.

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

· Библиотека хорошо документирована и описана в книгах. В случае разработки собственных контейнеров и алгоритмов документация будет, скорее всего, значительно беднее, что повысит стоимость подготовки нового специалиста.

· Код, написанный с использованием STL легко переносится на другие компиляторы, операционные системы и платформы.

 

К недостаткам STL можно отнести:

· Неприспособленность к работе со структурными типами данных.

· Низкая эффективность (быстродействие, память) при решении частных задач, где возможны целевые оптимизации кода.

· Неадекватный интерфейс шаблона для работы со строками

· Сложность управления пулом памяти при работе с контейнерами STL.

 

Указанные недостатки в основном касаются уровня профессиональных программистов, которые способны самостоятельно проанализировать эффективность использования той или иной библиотеки. Для начинающего программиста данная библиотека является средством, позволяющим значительно повысить производительность труда и быстро перейти от решения низкоуровневых задач к проблемам предметной области. Поэтому библиотека STL в обязательном порядке должна быть изучена разработчиком и должна повсеместно использоваться до того времени, пока он не сможет самостоятельно убедительно аргументировать выбор другой библиотеки или разработку собственных контейнеров и алгоритмов.


Дата добавления: 2015-09-03; просмотров: 363 | Нарушение авторских прав


Читайте в этой же книге: Самое длинное слово beautiful | Строковые потоки | Состояние формата (ОТНОСИТСЯ К ПОСЛЕДНЕМУ ВОПРОСУ, КОТОРЫЙ 24) | Работа с несовместимыми конструкциями. | Стандартный класс string. Зарезервированные слова и опции меню. | Стандартный класс string. Операции ввода-вывода строк. | Описание таблицы акселераторов | Специализация шаблонов класса | Схемы отображения шрифтов | Заметки |
<== предыдущая страница | следующая страница ==>
Недостатки шаблонов| Структура библиотеки

mybiblioteka.su - 2015-2024 год. (0.006 сек.)