itmo.ru aco.ifmo.ru c-visionlab.ru
вернуться в оглавление предыдущая глава предыдущий параграф следующий параграф следующая глава


2.1 Состав стандартной библиотеки C++

Что должно быть в стандартной библиотеке? Все! Но это невозможно, неразумно и все равно недостаточно. Стандартная библиотека C++ -- это набор функций и классов, который должен быть в каждой реализации языка, как основа, эффективно реализующая механизмы:

  • математические функции (в том числе комплексные числа, случайные числа);
  • работа с временем и дата;
  • строковый тип данных и форматные преобразования;
  • ввод/вывод.

STL (Stadard Template Library) -- стандартная библиотека шаблонов. Название обобщенное, может быть не совсем точное, так как ее составляют в основном шаблоны всевозможных контейнеров и алгоритмов их обработки (библиотека контейнеров). Библиотеку составляют:

  • контейнеры (объекты для хранения однотипных данных)
    • последовательные (vector, deque, list);
    • ассоциативные (set, multiset, map, multimap);
  • адапторы (объекты, созданные на основе базовых контейнеров, с измененным интерфейсом: например, queue, stack)
  • итераторы (объекты, которые используются для универсального доступа к элементам хранящимся в контейнере любого типа)
  • алгоритмы (обобщенные процедуры для обработки элементов любых контейнеров)
  • функции-объекты (объекты, у которых перегружен оператор вызова функций operator (): например предикаты, позволяющие без изменения шаблона изменять критерии сравнения элементов контейнера и другие подобные действия)

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

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

Пространства имён

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

namespace std
{
    ...
    double cos(double x);
    ...
}

Для использования функций, заключенных в пространство имен, необходимо получить доступ в это пространство. Это можно сделать двумя способами:

#include <cmath>
using namespace std;

или

std::cos(0.);