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

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

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

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 ()

Деструктор. Уничтожает все символы и освобождает память.

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

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



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий