Строение строковых классов. Операции с размером и емкостью

   
На этом шаге мы рассмотрим методы, используемые для работы с размером и емкостью строки.

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

  size_type string::size() const
  size_type string::length() const

Обе функции возвращают текущее количество символов в строке.

   
Применительно к строкам они являются эквивалентными.

   
Для проверки пустых строк следует использовать функцию empty(), поскольку она может работать быстрее.

  bool string::empty() const

Проверяет, является ли строка пустой (то есть не содержит ни одного символа).

   
Эквивалент (но может работать быстрее):

  string::size()==0
  size_type string::max_size() const

Возвращает максимальное количество символов, которые могут содержаться в строке.

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

Операции с емкостью

  size_type string::capacity () const

Возвращает количество символов, которые могут храниться в строке без перераспределения памяти.

  void string::reserve ()
  void string::reserve (size_type num)

   
Вторая форма резервирует внутреннюю память, по крайней мере, для num символов.

   
Если num меньше текущей емкости, вызов интерпретируется как запрос на сокращение емкости, не обязательный к выполнению.

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

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

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

   
При каждом перераспределении памяти становятся недействительными все ссылки, указатели и итераторы. Кроме того, перераспределение требует
времени, поэтому предварительный вызов reserve() повышает скорость работы программы и сохраняет ссылки, указатели и итераторы
(подробнее смотри 369 шаг).

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



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

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