На этом шаге мы приведем общие сведения о строках как контейнкрах STL.
Строковые классы стандартной библиотеки C++ являют собой пример активного подхода к написанию контейнеров STL. Строку можно рассматривать как контейнер для хранения символов. Символы строки образуют последовательность; перебирая элементы этой последовательности, можно получить доступ к отдельным символам. Таким образом, стандартные строковые классы поддерживают интерфейс контейнеров STL. В них определены функции begin() и end(), возвращающие итераторы прямого доступа для перебора символов строки, и функции для итераторов и итераторных адаптеров (например, функция push_back() для вставки элементов с конца). Учтите, что работа со строками в контексте STL выглядит несколько необычно. Дело в том, что обычно строка обрабатывается как единое целое (при передаче, копировании и присваивании используются целые строки, а не составляющие их символы). Но при работе со строкой на уровне отдельных символов (например, при чтении символов потоковым итератором ввода или преобразовании строки к верхнему или нижнему регистру) алгоритмы STL могут оказаться полезными. Вдобавок алгоритмы STL позволяют определять специальные критерии сравнения строк, тогда как стандартный интерфейс строк такой возможности не предоставляет.
Различные аспекты использования строк в STL с примерами будут рассмотрены позднее.
Со следующего шага мы начнем рассматривать обычные массивы как контейнеры STL.