Михаил Абрамян - Введение в стандартную библиотеку шаблонов C++. Описание, примеры использования, учебные задачи

Введение в стандартную библиотеку шаблонов C++. Описание, примеры использования, учебные задачи
Название: Введение в стандартную библиотеку шаблонов C++. Описание, примеры использования, учебные задачи
Автор:
Жанры: Программы | Программирование | Книги о компьютерах
Серии: Нет данных
ISBN: Нет данных
Год: Не установлен
О чем книга "Введение в стандартную библиотеку шаблонов C++. Описание, примеры использования, учебные задачи"

Учебник состоит из трех основных разделов. Первый раздел содержит описание стандартной библиотеки шаблонов C++, во втором приводятся примеры ее применения, а третий представляет собой задачник из 300 учебных заданий, охватывающих все разделы стандартной библиотеки. При описании библиотеки учитываются нововведения стандарта С++11. В четвертом, дополнительном разделе дается обзор средств электронного задачника Programming Taskbook for STL, позволяющих выполнять учебные задания более быстро и эффективно.

Для студентов бакалавриата, обучающихся по направлению подготовки 02.03.02 «Фундаментальная информатика и информационные технологии».

Бесплатно читать онлайн Введение в стандартную библиотеку шаблонов C++. Описание, примеры использования, учебные задачи


Предисловие

Книга, предлагаемая вашему вниманию, представляет собой практико-ориентированный учебник по стандартной библиотеке шаблонов языка C++. Для библиотеки шаблонов часто используется название STL (Standard Template Library), которое является неформальным, однако позволяет отличить ее от остальных частей стандартной библиотеки C++. Начиная с 1998 г. библиотека STL входит в стандарт C++ ISO/IEC 14882 (C++98); она содержит средства для создания и преобразования различных структур данных и использует технологию обобщенного программирования. Архитектура библиотеки STL базируется на трех основных компонентах: контейнерах, итераторах и алгоритмах. Контейнеры предназначены для хранения наборов объектов в памяти; STL включает две группы контейнеров: последовательные и ассоциативные, в каждую группу входят контейнеры с различными свойствами, что позволяет выбирать контейнер, наиболее подходящий для решения поставленной задачи. Итераторы обеспечивают унифицированные средства доступа к содержимому контейнера. Благодаря концепции итераторов, базирующейся на средствах обобщенного программирования, оказалось возможным реализовать универсальные алгоритмы – вычислительные процедуры, предназначенные для анализа и преобразования контейнеров. Один и тот же алгоритм может быть применен к любым контейнерам, обладающим требуемыми для этого алгоритма свойствами (точнее, имеющим итераторы того типа, который необходим для корректной работы алгоритма). Еще одной составной частью библиотеки STL являются функциональные объекты, представляющие собой обобщения функций и фигурирующие во многих алгоритмах. В пересмотренном стандарте C++ ISO/IEC 14882:2011 (C++11) библиотека STL была дополнена рядом новых возможностей.

Библиотека STL является одной из наиболее трудных для изучения частей стандартной библиотеки С++. Во-первых, это достаточно большая часть стандартной библиотеки: она включает 5 основных видов итераторов, а также их модификации, 7 основных и ряд дополнительных контейнеров, около 70 (в стандарте C++11 – около 90) алгоритмов, большинство из которых реализовано в нескольких вариантах, и большое число стандартных функциональных объектов. Во-вторых, архитектура библиотеки STL основана на шаблонах – весьма сложном разделе языка C++ [3]. Следует заметить, что особенности механизма шаблонов языка C++ затрудняют поиск и исправление ошибок, допущенных при использовании средств библиотеки STL (в частности, сообщения компилятора об ошибке нередко связываются с фрагментами стандартного программного кода, а не с теми операторами разрабатываемой программы, в которых фактически была допущена ошибка). В то же время библиотека STL относится к тем основным частям стандартной библиотеки, владение которыми является обязательным условием для квалифицированной разработки программ на языке C++.

По библиотеке STL имеется обширная учебная литература, в том числе и на русском языке. Можно отметить книги [2, 4, 6, 7], целиком посвященные STL, а также соответствующие разделы в известных учебниках [5, 8]. Однако очень немногие издания содержат наборы упражнений, позволяющие закрепить полученные знания (в частности, из перечисленных книг упражнения содержат лишь учебники универсального содержания [5, 8]). При этом предлагаемые упражнения не охватывают все возможности библиотеки и являются достаточно сложными, что затрудняет их использование при проведении лабораторных занятий. Настоящее издание призвано восполнить этот пробел. Помимо компактного, но в то же время достаточно подробного описания всех элементов стандартной библиотеки шаблонов, приведенного в разделе 1, а также примеров их применения (которым посвящен раздел 2), оно содержит набор из 300 задач по всем основным разделам стандартной библиотеки и, таким образом, позволяет не только ознакомиться с ее возможностями, но и освоить эту библиотеку на практике. Задачи разбиты на 7 групп; содержание групп, их особенности и формулировки всех задач приведены в разделе 3.

В описании основных компонентов библиотеки STL учитываются нововведения стандарта C++11. Задания ориентированы в основном на базовый вариант библиотеки STL, соответствующий стандарту C++98, однако при их выполнении вполне допустимо (и более удобно) использовать новые возможности, появившиеся в стандарте C++11.

Все задачи, приведенные в книге, входят в состав электронного задачника Programming Taskbook for STL (PT for STL), являющегося одним из дополнений универсального задачника по программированию Programming Taskbook. Задачник PT for STL может использоваться совместно со средами программирования Microsoft Visual Studio 2008, 2010, 2012, 2013, 2015, 2017 и Code::Blocks, начиная с версии 13. Он позволяет генерировать программы-заготовки для выбранных заданий, предоставляет программам наборы тестовых исходных данных, проверяет правильность полученных результатов, диагностирует различные виды ошибок и отображает на экране все данные, связанные с заданием. Все эти возможности существенно ускоряют выполнение заданий. Особенности применения задачника при выполнении заданий подробно описываются в разделе 2, а дополнительные средства задачника, упрощающие ввод, вывод и отладочную печать данных, – в разделе 4.

Получить дополнительную информацию об электронном задачнике Programming Taskbook и его дополнении Programming Taskbook for STL (а также других его дополнениях) и скачать их дистрибутивы можно на сайте электронного задачника – http://ptaskbook.com/.

Автор считает своим приятным долгом выразить искреннюю благодарность Денису Владимировичу Дуброву и Артему Михайловичу Пеленицыну, которые прочитали первый вариант рукописи и высказали много ценных замечаний.

Раздел 1. Описание библиотеки STL

1.1. Итераторы

1.1.1. Общее описание

В библиотеке STL используются пять основных видов итераторов:

• итераторы чтения;

• итераторы записи;

• однонаправленные итераторы;

• двунаправленные итераторы;

• итераторы произвольного доступа.

Для каждого вида итераторов определен набор операций, причем двумя операциями, доступными для всех видов итераторов, являются операция инкремента ++, которая передвигает итератор p на следующий элемент последовательности (++p и p++), и операция разыменования >*, возвращающая значение текущего элемента (>*p и вариант p->m для доступа к члену m разыменованного объекта).

Операция разыменования имеет следующие особенности:

• в случае итераторов чтения операция >* не может использоваться для изменения элемента;

• в случае итераторов записи операция >* не может использоваться для получения значения элемента (выражение >*p можно использовать только в левой части присваивания);


С этой книгой читают
Если вам наскучило работать в Интернете только с помощью Internet Explorer и забирать почту, только используя Outlook Express, если вы хотите узнать, какие еще программы, кроме ICQ, помогают общаться в Сети, если вы чувствуете, что для работы в Интернете вам еще что-то нужно, но не знаете что, то вам стоит заглянуть в эту книгу. Здесь рассмотрены самые разные программы, помогающие выполнять различные задачи в Интернете: альтернативные браузеры и
В книге рассказывается об известной немецкой разработке – программе ArCon, предназначенной для быстрого моделирования жилых зданий и оформления их интерьера и экстерьера. Программа достаточно проста в использовании, не требует практически никаких навыков трехмерного моделирования, однако позволяет создавать дизайнерские проекты, которые почти ничем не уступают разработанным в 3ds Max или Maya.Книга содержит подробное описание функционала последне
Эта книга поможет вам разобраться в премудростях Microsoft Excel 2007.Информационная насыщенность учебного материала позволяет утверждать, что мультимедийный курс будет интересен и новичкам, и опытным пользователям, которые уже владеют основными навыками работы в Excel и стремятся к достижению профессиональных результатов в своей работе.
Это саммари – сокращенная версия книги «Как устроен ChatGPT? Полное погружение в принципы работы и спектр возможностей самой известной нейросети в мире» Стивена Вольфрама. Только самые ценные мысли, идеи, кейсы, примеры.ChatGPT умеет генерировать читабельный текст, анализируя миллионы аналогичных текстов. Стивен Вольфрам поясняет, как работает чат-бот, и предлагает научить его не просто имитировать результат человеческого мышления, но мыслить сам
Любовь не знает ни времени, ни границ. Если двое любят, то преодолеют все преграды. Красная нить судьбы, которой боги связали лодыжки влюбленных, может запутаться, но никогда не порвётся, даже если влюбленные живут на разных концах земли и не подозревают друг о друге.
Книга «Ключи к лидерству» посвящена раскрытию специфических особенностей лидерского характера. Мир отчаянно нуждается в новом поколении эффективных лидеров, способных побеждать и вдохновлять других людей своими победами. Работа в доступной форме отвечает на вопросы «Что такое лидерство?», «Как изменить свой характер?», «Как стать лидером?».
Вы держите в руках книгу, где собраны основные данные по астрологии, алхимии, аюрведе, приведены базовые правила питания и дано описание знаков Зодиака. Представлена авторская концепция жизни на Земле, которая может привести человечество к гармонии и новому уровню духовности. Также в книге большое внимание уделяется теме выбора и реальности, в которой мы находимся.В формате PDF A4 сохранен издательский макет книги.
Учебник по диагностике кармы Евгения Борисовича Лугова издаётся с 2017 года. Это единственный в мире научный практический труд, позволяющий любому человеку понимать, измерять в цифрах и корректировать здоровье физического тела, энерго-био поля, удалять негативные воздействия на себе и других людях, чистить карму этой жизни, видеть и корректировать узлы прошлых жизней, а также устойчиво корректировать энергии пространственных объектов и даже целых