Шаг 395.
Библиотека STL.
Строение строковых классов. Модифицирующие операции. Присваивание

    На этом шаге мы рассмотрим операции, выполняющие присваивание.

    Для выполнения указанных действий используются следующие методы:

  string& string::operator= (const string&, str) 
  string& string::assign (const string&, str)
Обе функции присваивают значение строки str.

    Обе функции возвращают *this.

  string& string::assign (const string& str, size_type str_idx, size_type str_num)
Присваивает не более str_num символов строки str, начиная с индекса str_idx. Возвращает *this.

    Если выполняется условие str_idx>str.size() генерируется исключение out_of_ range.

  string& string::operator= (const char* cstr) 
  string& string::assign (const char* cstr)
Обе функции присваивают символы, входящие в С-строку cstr.

    Присваиваются все символы cstr, кроме \0.

    Обе функции возвращают *this.

    Аргумент cstr не должен содержать NULL-указатель.

    Если размер полученной строки превышает максимально допустимое количество символов, обе функции генерируют исключение length_error.

  string& string::assign (const char* chars, size_type chars_len)
Присваивает chars_len символов из символьного массива chars.

    Возвращает *this.

    Символьный массив chars должен содержать не менее chars_len символов, которые могут иметь произвольные значения (символ \0 не имеет особой интерпретации).

    Если размер полученной строки превышает максимально допустимое количество символов, генерируется исключение length_error.

  string& string::operator= (char с)
Присваивает символ с как новое значение строки.

    Возвращает *this.

    После вызова *this содержит только один символ.

  string& string::assign (size_type num, char c)
Присваивает num экземпляров символа с.

    Возвращает *this.

    Если аргумент num равен string::npos, генерируется исключение length_error.

    Если размер полученной строки превышает максимально допустимое количество символов, генерируется исключение length_error.

  void string::swap (string& str)
  void swap (string& str1, string& str2)
Обе формы меняют местами содержимое двух строк:
  • функция класса обменивает содержимое *this и str,
  • глобальная функция обменивает содержимое str1 и str2.

    По возможности старайтесь использовать эти функции вместо присваивания, поскольку они работают быстрее. Более того, для них гарантируется постоянная сложность.

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




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