Шаг 358.
Библиотека STL.
Строки (общие сведения)

    На этом шаге мы приведем общие сведения о строках.

    Начиная с этого шага мы будем изучать строковые типы стандартной библиотеки C++. Мы рассмотрим базовый шаблон basic_string<> и его специализации string и wstring.

    При работе со строками у программистов часто возникают недоразумения. Как правило, это происходит из-за того, что термин "строка" может означать совершенно разные вещи - обычный символьный массив типа char* (с квалификатором const или без него), экземпляр класса string. Это также может быть обобщающим названием для объектов, которые содержат строковую информацию. Термином "строка" мы будем обозначать объект любого из строковых типов стандартной библиотеки C++ (string или wstring). "Традиционные" же строки типов char* и const char* будут называться С-строками.

    Учтите, что тип строковых литералов (например, "hello") был заменен на const char*. Тем не менее для обеспечения совместимости поддерживается неявное (хотя и нежелательное) преобразование к char*.

    Строковые классы стандартной библиотеки C++ позволяют работать со строками как с обычными типами, не создающими проблем для пользователей. Это означает, что строки можно копировать, присваивать и сравнивать как базовые типы, не беспокоясь о возможной нехватке памяти или размерах внутреннего блока, предназначенного для хранения символов. Вы просто используете нужный оператор, например, = (присваивание), == (проверка на равенство) или + (конкатенация). Короче говоря, строковые типы стандартной библиотеки C++ спроектированы так, чтобы они работали как базовые типы данных, не вызывающие никаких дополнительных проблем (во всяком случае, теоретически). Современная обработка данных во многом ориентирована на работу с текстом, поэтому данный аспект особенно важен для программистов с опытом работы на С, Fortran и других языках, в которых обработка строк реализована весьма неудобно.

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

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




Предыдущий шаг Содержание Следующий шаг