size_type size() const noexcept;
size_type length() const noexcept;
size_type max_size() const noexcept;
Returns: Максимально возможное количество символьных объектов, которые могут храниться в basic_string.
void resize(size_type n, charT c);
Effects: Изменяет длину строки, обозначенной *this следующим образом:
Если n <= size()функция заменяет строку, обозначенную знаком, *this строкой длины n , элементы которой являются копией начальных элементов исходной строки, обозначенной *this.
Если n > size(), функция заменяет строку, обозначенную *this с помощью, строкой длины n , первые size() элементы которой являются копией исходной строки, обозначенной с помощью *this, а остальные элементы которой инициализируются c.
void resize(size_type n);
size_type capacity() const noexcept;
void reserve(size_type res_arg=0);
Функция-член reserve() - это директива, информирующая basic_string объект о запланированном изменении размера, чтобы он мог соответствующим образом управлять распределением хранилища.
Effects: После тогоreserve(), capacity() больше или равен аргумент reserve. [ Note: Вызов reserve() с res_arg аргументом, меньшим чем capacity() , по сути, является необязательным запросом на сжатие. Обращение с помощью res_arg <= size() по сути является необязательным запросом на усадку по размеру. ] — end note
void shrink_to_fit();
Effects: shrink_to_fit является необязательным запросом для сокращения capacity() до size(). [ Note: Запрос не является обязывающим, чтобы дать свободу для оптимизации, зависящей от реализации. ] Он не увеличивается , но может уменьшаться , вызывая перераспределение. — end note capacity() capacity()
Remarks: Перераспределение делает недействительными все ссылки, указатели и итераторы, относящиеся к элементам в последовательности, а также к итератору, прошедшему конец. Если перераспределения не происходит, они остаются в силе.
void clear() noexcept;
bool empty() const noexcept;
reserve() использования, allocator_traits<Allocator>::allocate() которые могут вызвать соответствующее исключение.