Поделиться через


Класс basic_string

Последовательности, управляемые объектом класса шаблона basic_string, являются строковым классом стандарта C++ и обычно называются просто строками, но их не следует путать с C-строками, оканчивающимися нулевым символом, в библиотеке Standard C++. Стандартная строка C++ является контейнером, позволяющим использовать строки как обычные типы, например, в операциях сравнения и сцепления, итераторах, алгоритмах STL, а также копировать и назначать с помощью управляемой памяти распределителя класса. Если необходимо преобразовать стандартную строку C++ в C-строку, оканчивающуюся нулевым символом, используйте член basic_string::c_str.

template <class CharType, class Traits = char_traits<CharType>, class Allocator = allocator<CharType>> class basic_string;

Параметры

  • CharType
    Тип данных одиночного символа, сохраняемого в строке. Библиотека Standard C++ предоставляет специализации этого класса шаблона с определениями типа string для элементов типа char, wstring для wchar_t, u16string для char16_t и u32string для char32_t.

  • Traits
    Различные важные свойства элементов CharType в специализации basic_string описываются классом Traits. Значение по умолчанию — char_traits<CharType>.

  • Allocator
    Тип, представляющий сохраненный объект распределителя, содержащий сведения о распределении строки и отмене распределения памяти. Значение по умолчанию — allocator<CharType>.

Конструкторы

basic_string

Создает пустую строку или строку, инициализируемую с определенными символами, или представляющую собой полную или частичную копию какого-либо другого строкового объекта или С-строки.

Определения типов

allocator_type

Тип, представляющий класс allocator для объекта строки.

const_iterator

Тип, предоставляющий итератор произвольного доступа, который может читать элемент const в списке.

const_pointer

Тип, предоставляющий указатель на элемент const в списке.

const_reference

Тип, предоставляющий ссылку на элемент const, хранящийся в строке, для чтения и выполнения операций const.

const_reverse_iterator

Тип, предоставляющий итератор произвольного доступа, который может читать любой элемент const в строке.

difference_type

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

iterator

Тип, предоставляющий итератор произвольного доступа, который может читать или изменять любой элемент в строке.

npos

Интегральное значение без знака, которое инициализируется со значением –1, что означает «не найдено» или «все остальные символы» при сбое функции поиска.

pointer

Тип, предоставляющий указатель на символьный элемент в строке или символьном массиве.

reference

Тип, предоставляющий ссылку на элемент в строке.

reverse_iterator

Тип, предоставляющий итератор произвольного доступа, который может читать или изменять любой элемент в обратной строке.

size_type

Интегральный тип без знака для количества элементов в строке.

traits_type

Тип, представляющий признаки символов для элементов, хранящихся в строке.

value_type

Тип, представляющий тип символов, хранящихся в строке.

Функции-члены

append

Добавляет символы в конец строки.

assign

Назначает значения новых символов содержимому строки.

at

Возвращает ссылку на элемент в заданном положении в строке.

back

begin

Возвращает итератор, адресующий первый элемент в строке.

c_str

Преобразует содержимое строки в С-строку, оканчивающуюся нулевым символом.

capacity

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

cbegin

Возвращает константный итератор, адресующий первый элемент в строке.

cend

Возвращает константный итератор, адресующий расположение после последнего элемента в строке.

clear

Удаляет все элементы строки.

compare

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

copy

Копирует не более указанного количества символов из индексированного положения в исходной строке в массив символов назначения. Не рекомендуется. Взамен рекомендуется использовать basic_string::_Copy_s.

crbegin

Возвращает константный итератор, адресующий первый элемент в обратной строке.

crend

Возвращает константный итератор, адресующий расположение после последнего элемента в обратной строке.

_Copy_s

Копирует не более указанного количества символов из индексированного положения в исходной строке в массив символов назначения.

data

Преобразует содержимое строки в массив символов.

empty

Проверяет, содержит ли строка символы.

end

Возвращает итератор, адресующий расположение после последнего элемента в строке.

erase

Удаляет элемент или диапазон элементов с указанного положения в строке.

find

Поиск по строке в прямом направлении до первого вхождения подстроки, совпадающей с заданной последовательностью символов.

find_first_not_of

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

find_first_of

Выполняет поиск первого символа в строке, совпадающего с любым элементом заданной строки.

find_last_not_of

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

find_last_of

Выполняет поиск последнего символа в строке, совпадающего с любым элементом заданной строки.

front

Возвращает ссылку на первый элемент в строке.

get_allocator

Возвращает копию объекта объекта allocator, использованного для создания строки.

insert

Вставляет элемент или количество элементов или диапазон элементов в указанное положение в строке.

length

Возвращает текущее количество элементов в строке.

max_size

Возвращает максимальное количество символов в строке.

pop_back

Удаляет последний элемент строки.

push_back

Добавляет элемент в конец строки.

rbegin

Возвращает итератор на первый элемент в обратной строке.

rend

Возвращает итератор, адресующий расположение после последнего элемента в обратной строке.

replace

Заменяет элементы в указанном положении в строке на указанные символы или символы, скопированные из других диапазонов, обычных строк или С-строк.

reserve

Устанавливает вместимость строки не меньше указанного числа.

resize

Указывает новый размер строки, добавляя или удаляя элементы по мере необходимости.

rfind

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

shrink_to_fit

Удаляет излишнюю вместимость строки.

size

Возвращает текущее количество элементов в строке.

substr

Копирует из указанного положения в строке подстроку, содержащую по крайней мере несколько символов.

swap

Меняет местами содержимое двух строк.

Операторы

operator +=

Присоединяет символы к строке.

operator =

Назначает значения новых символов содержимому строки.

operator[]

Предоставляет ссылку на символ с указанным индексом в строке.

Заметки

Если функция должна создать последовательность, длина которой превышает max_size элементов, функция выдает сообщение об ошибке длины, создавая объект типа length_error.

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

Требования

Заголовок: <string>

Пространство имен: std

См. также

Ссылки

<string>

Потокобезопасность в стандартной библиотеке C++