На этом шаге мы рассмотрим операции, выполняющие присваивание.
Для выполнения указанных действий используются следующие методы:
string& string::operator= (const string&, str) string& string::assign (const string&, str)
Обе функции возвращают *this.
string& string::assign (const string& str, size_type str_idx, size_type str_num)
Если выполняется условие str_idx>str.size() генерируется исключение out_of_ range.
string& string::operator= (const char* cstr) string& string::assign (const char* cstr)
Присваиваются все символы cstr, кроме \0.
Обе функции возвращают *this.
Аргумент cstr не должен содержать NULL-указатель.
Если размер полученной строки превышает максимально допустимое количество символов, обе функции генерируют исключение length_error.
string& string::assign (const char* chars, size_type chars_len)
Возвращает *this.
Символьный массив chars должен содержать не менее chars_len символов, которые могут иметь произвольные значения (символ \0 не имеет особой интерпретации).
Если размер полученной строки превышает максимально допустимое количество символов, генерируется исключение length_error.
string& string::operator= (char с)
Возвращает *this.
После вызова *this содержит только один символ.
string& string::assign (size_type num, char c)
Возвращает *this.
Если аргумент num равен string::npos, генерируется исключение length_error.
Если размер полученной строки превышает максимально допустимое количество символов, генерируется исключение length_error.
void string::swap (string& str) void swap (string& str1, string& str2)
По возможности старайтесь использовать эти функции вместо присваивания, поскольку они работают быстрее. Более того, для них гарантируется постоянная сложность.
На следующем шаге мы рассмотрим методы, использующиеся для присоединения символов.