Шаг 390.
Библиотека STL.
Строение строковых классов. Операции создания, копирования и уничтожения строк

    На этом шаге мы перечислим операции, выполняющие указанные действия.

    Для выполнения этих операций имеются следующие методы:

string::string ()
Конструктор по умолчанию. Создает пустую строку.
string::string (const string& str)
Копирующий конструктор. Создает новую строку как копию str.
string::string (const string& str, size_type str_idx)
string::string (const string& str, size_type str_idx, size_type str_num)
Создает новую строку, инициализированную не более чем str_num символами str, начиная с индекса str_idx. Если аргумент str_num не указан, используются все символы от позиции str_idx до конца str. Если str_idx>str.size(), генерируется исключение out_of_range.
string::string (const char* cstr)
Создает новую строку, инициализируемую содержимым С-строки cstr. Строка инициализируется всеми символами cstr, за исключением символа \0. Аргумент cstr не должен быть NULL-указателем. Если размер полученной строки превышает максимально допустимое количество символов, генерируется исключение length_error.
string::string (const char* cstr, size_type chars_len)
Создает новую строку, инициализируемую chars_len символами символьного массива chars. Массив chars должен содержать не менее chars_len символов. Символы могут иметь любые значения, поэтому символ \0 не имеет особой интерпретации. Если аргумент chars_len равен string::npos, генерируется исключение length_error. Если размер полученной строки превышает максимально допустимое количество символов, генерируется исключение length_error.
string::string (size_type num, char с)
Создает строку, инициализируемую num экземплярами символа с. Если аргумент num равен string::npos, генерируется исключение length_error. Если размер полученной строки превышает максимально допустимое количество символов, генерируется исключение length_error.
string::string (InputIterator beg, InputIterator end)
Создает строку, инициализируемую всеми символами интервала [beg,end). Если размер полученной строки превышает максимально допустимое количество символов, генерируется исключение length_error.
string::~string ()
Деструктор. Уничтожает все символы и освобождает память.

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

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




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