ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 13.12.2020
Просмотров: 4268
Скачиваний: 28
ЧАСТЬ
IV
Стандартная библиотека
языка программирования С++
Глава 35.
Структура стандартной библиотеки С++
Глава 36.
Обработка исключений <exception>
Глава 37.
Классы стандартных исключений <stdexcept>
Глава 38.
Динамическая идентификация типов <typeinfo>
Глава 39.
Работа со строками в С++ <string>
Глава 40.
Потоки ввода/вывода в C++
Г Л А В А
35
Структура
стандартной библиотеки С++
Все стандартные функции языка программирования C стандартны
и для языка С++. Поэтому стандартная библиотека языка про-
граммирования С++ содержит как заголовочные файлы стандарт-
ной библиотеки языка программирования С, так и новые за-
головочные файлы. В отличие от заголовочных файлов языка
программирования C, которые имеют расширение h, новые заго-
ловочные файлы языка программирования С++ не имеют расши-
рения.
Отличие между заголовочными файлами языка программирова-
ния C и новыми заголовочными файлами языка программирова-
ния С++ заключается в следующем. Все стандартные заголовоч-
ные файлы языка программирования C объявляют функции в
глобальном пространстве имен, а стандартные заголовочные
файлы языка программирования C++ объявляют функции в стан-
дартном пространстве имен. Заметим, что для каждого заголо-
вочного файла стандартной библиотеки функций языка програм-
мирования C для функций из стандартной библиотеки языка про-
граммирования С++ существует соответствующий заголовочный
файл, который объявляет те же функции, но в стандартном про-
странстве имен. Имя такого заголовочного файла начинается с
буквы "
c
". Например, для заголовочного файла signal.h в стан-
дартной библиотеки языка программирования С++ существует
соответствующий заголовочный файл csignal. Заметим, что неко-
торые компиляторы также содержат заголовочные файлы, кото-
рые объявляют стандартные функции языка программирования
Часть IV. Стандартная библиотека языка программирования С++
404
С++ и в глобальном пространстве имен. Такие заголовочные
файлы, как правило, имеют расширение h. Например, в заголо-
вочном файле iostream.h могут определяться стандартные потоки
ввода/вывода.
Функционально стандартная библиотека языка программирова-
ния С++ без функций, наследуемых из стандартной библиотеки
языка программирования С, разбивается на следующие библио-
теки специального назначения:
поддержка языка (The Language Support Library):
<exception>
— обработка исключений;
<limits>
— арифметические свойства скалярных типов;
<new>
— распределение и освобождение памяти;
<typeinfo>
— получение информации о типах данных;
диагностика (The Diagnostics Library):
<stdexcept>
— обработка стандартных исключений;
утилиты общего назначения (The General Utilities Library):
<utility>
— шаблоны для использования в стандартной
библиотеке шаблонов;
<functional>
— шаблоны для построения объектов функций;
<memory>
— шаблоны для распределения и освобождения
памяти под объекты;
шаблоны для работы со строками (The Standard String
Templates):
<string>
— шаблоны для обработки строк;
классы и шаблоны для поддержки локализации (Localization
Classes and Templates):
<locale>
— поддержка локализации;
стандартную библиотеку шаблонов (The Standard Template
Library):
<algorithm>
— алгоритмы над контейнерами;
<bitset>
— массив бит;
Глава 35. Структура стандартной библиотеки С++
405
<deque>
— дек;
<iterator>
— итераторы;
<list>
— список;
<map>
— отображение и мультиотображение;
<queue>
— очередь и очередь с приоритетами;
<set>
— множество и мультимножество;
<stack>
— стек;
<vector>
— вектор;
поддержка числовых операций (The Standard Numerics Library):
<complex>
— комплексные числа;
<numeric>
— шаблоны функций для числовых алгоритмов
над последовательноcтями элементов;
<valarray>
— шаблоны функций и классов для вычислений
над элементами массивов;
ввод/вывод (The Standard Input/Output Library):
<fstream>
— потоки для работы с файлами;
<iomanip>
— манипуляторы потоков;
<ios>
— базовые типы и функции для работы с потоками;
<iosfwd>
— объявления шаблонов и типов, используемых
в других заголовочных файлах;
<iostream>
— стандартные потоки ввода/вывода;
<istream>
— потоки ввода;
<ostream>
— потоки вывода;
<streambuf>
— буфер потока;
<sstream>
— потоковые операции со строками типа
basic_string
;
<strstream>
— потоковые операции со строками языка про-
граммирования С.