Шаг 390.
Библиотека STL.
Строение строковых классов. Операции создания, копирования и уничтожения строк
На этом шаге мы перечислим операции, выполняющие указанные действия.
Для выполнения этих операций имеются следующие методы:
-
- Конструктор по умолчанию. Создает пустую строку.
-
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.
-
- Деструктор. Уничтожает все символы и освобождает память.
Большинство конструкторов позволяют в дополнительном аргументе передать распределитель памяти.
Со следующего шага мы начнем рассматривать операции с размером и емкостью.
Предыдущий шаг
Содержание
Следующий шаг