The Wayback Machine - https://web.archive.org/web/20201003111252/https://ru.cppreference.com/w/cpp/string/basic_string
Пространства имён
Варианты
Действия

std::basic_string

Материал из cppreference.com
< cpp‎ | string
 
C++
Язык
Стандартная библиотека
Самостоятельные и принятые реализации
Требования к именованию
Поддержка языка
Библиотека концепций (C++20)
Обработка исключений
Библиотека утилит
Библиотека строк
Библиотека контейнеров
Библиотека итераторов
Библиотека диапазонов (C++20)
Библиотека алгоритмов
Библиотека численных данных
Библиотека ввода/вывода
Библиотека локализаций
Регулярные выражения (C++11)
Атомарные операции (C++11)
Библиотека поддержки потоков (C++11)
Библиотека файловой системы (C++17)
Технические спецификации
 
 
std::basic_string
Функции-члены
Доступ к элементам
Итераторы
Вместимость
Функции, не являющиеся членами
(C++11)(C++11)(C++11)
(C++11)(C++11)
(C++11)(C++11)(C++11)
(C++11)
(C++11)
Вспомогательные классы
Правила вывода типов(C++17)
 
Определён в заголовочном файле <string>
template<

    class CharT,
    class Traits = std::char_traits<CharT>,
    class Allocator = std::allocator<CharT>

> class basic_string;
(1)
namespace pmr {

    template <class CharT, class Traits = std::char_traits<CharT>>
    using basic_string = std::basic_string< CharT, Traits,
                                            std::polymorphic_allocator<CharT>>

}
(2) (начиная с C++17)

Шаблон класса basic_string хранит и управляет последовательностью char-подобных объектов. Класс не зависит ни от используемого символьного типа, ни от природы операций над этим типом. Определения этих операций передаются через параметр шаблона Traits, являющийся специализацией std::char_traits или любым другим совместимым классом свойств.

Элементы basic_string хранятся непрерывно, иными словами для basic_string s справедливо &*(s.begin() + n) == &*s.begin() + n для любого n в диапазоне [0, s.size()), или, что идентично, указатель на s[0] может быть передан в функцию, которая ожидает указатель на первый элемент массива charT[].

(начиная с C++11)

Предоставлено несколько специализаций для распространенных типов символов:

Заголовочный файл <string>
Type Definition
std::string std::basic_string<char>
std::wstring std::basic_string<wchar_t>
std::u8string (C++20) std::basic_string<char8_t>
std::u16string (C++11) std::basic_string<char16_t>
std::u32string (C++11) std::basic_string<char32_t>
std::pmr::string (C++17) std::pmr::basic_string<char>
std::pmr::wstring (C++17) std::pmr::basic_string<wchar_t>
std::pmr::u8string (C++20) std::pmr::basic_string<char8_t>
std::pmr::u16string (C++17) std::pmr::basic_string<char16_t>
std::pmr::u32string (C++17) std::pmr::basic_string<char32_t>

Содержание

[править] Параметры шаблона

CharT — символьный тип
Traits — класс свойств, устанавливающий операции над символьным типом
Allocator — тип-Allocator, используемый для внутреннего выделения памяти

[править] Типы-члены

Тип-член Определение
traits_type Traits
value_type Traits::char_type
allocator_type Allocator [править]
size_type Беззнаковый целочисленный тип (обычно size_t) [править]
difference_type Знаковый целочисленный тип (обычно std::ptrdiff_t) [править]
reference Allocator::reference (до C++11)
value_type& (начиная с C++11) [править]
const_reference Allocator::const_reference (до C++11)
const value_type& (начиная с C++11) [править]
pointer Allocator::pointer (до C++11)
std::allocator_traits<Allocator>::pointer (начиная с C++11) [править]
const_pointer Allocator::const_pointer (до C++11)
std::allocator_traits<Allocator>::const_pointer (начиная с C++11) [править]
iterator RandomAccessIterator [править]
const_iterator Константный итератор с произвольным доступом [править]
reverse_iterator std::reverse_iterator<iterator> [править]
const_reverse_iterator std::reverse_iterator<const_iterator> [править]

[править] Функции-члены

создаёт basic_string
(public функция-член) [править]
присваивает значения строке
(public функция-член) [править]
назначает символы строке
(public функция-член) [править]
Возвращает связанный аллокатор
(public функция-член) [править]
Доступ к элементам
получение указанного символа с проверкой выхода индекса за границы
(public функция-член) [править]
получение указанного символа
(public функция-член) [править]
(C++11)
получение первого символа
(public функция-член) [править]
(C++11)
получение последнего символа
(public функция-член) [править]
возвращает указатель на первый символ строки
(public функция-член) [править]
возвращает немодифицируемый массив символов С, содержащий символы строки
(public функция-член) [править]
возвращает string_view
(public функция-член) [править]
Итераторы
Возвращает итератор на первый элемент
(public функция-член) [править]

(C++11)
Возвращает итератор на элемент, следующий за последним
(public функция-член) [править]
Возвращает обратный итератор на первый элемент
(public функция-член) [править]
Возвращает обратный итератор на элемент, следующий за последним
(public функция-член) [править]
Вместимость
проверяет, является ли строка пустой
(public функция-член) [править]
возвращает количество символов в строке
(public функция-член) [править]
возвращает максимальное количество символов
(public функция-член) [править]
резервирует место под хранение
(public функция-член) [править]
возвращает количество символов, которые могут содержаться в текущем выделенном хранилище
(public функция-член) [править]
уменьшает использование памяти, освобождая неиспользуемую память
(public функция-член) [править]
Операции
очищает содержимое строки
(public функция-член) [править]
вставка символов
(public функция-член) [править]
удаление символов
(public функция-член) [править]
добавление символа в конец строки
(public функция-член) [править]
(C++11)
удаляет последний символ
(public функция-член) [править]
добавляет символы в конец строки
(public функция-член) [править]
добавляет символы в конец строки
(public функция-член) [править]
сравнивает две строки
(public функция-член) [править]
заменяет каждое вхождение указанного символа
(public функция-член) [править]
возвращает подстроку
(public функция-член) [править]
копирует символы
(public функция-член) [править]
изменяет количество хранимых символов
(public функция-член) [править]
обменивает содержимое
(public функция-член) [править]
Поиск
поиск подстроки в строке
(public функция-член) [править]
поиск последнего вхождения подстроки
(public функция-член) [править]
поиск первого вхождения символов
(public функция-член) [править]
найти первое вхождение отсутствия символов в строку
(public функция-член) [править]
найти последнее вхождение символов
(public функция-член) [править]
найти последнее вхождение отсутствия символов
(public функция-член) [править]

Константы

[static]
специальное значение. Точный смысл зависит от контекста
(public static константа-член) [править]

[править] Функции, не являющиеся членами

объединяет две строки или строку и символ
(шаблон функции) [править]
лексикографическое сравнение двух строк
(шаблон функции) [править]
специализированный для строк std::swap алгоритм
(шаблон функции) [править]
Ввод/вывод
выполняют потоковый вывод/ввод строк std::basic_string
(шаблон функции) [править]
считывает данные из потока ввода/вывода в строку
(функция) [править]
Числовые преобразования
(C++11)
(C++11)
(C++11)
преобразует строку в знаковое целое число
(функция) [править]
(C++11)
(C++11)
преобразует строку в беззнаковое целое число
(функция) [править]
(C++11)
(C++11)
(C++11)
преобразует строку в число с плавающей точкой
(функция) [править]
(C++11)
преобразует целое число или число с плавающей точкой в string
(функция) [править]
преобразует целое число или число с плавающей точкой в wstring
(функция) [править]

[править] Литералы

Пространство имён std::literals::string_literals
Возвращает basic_string из строки с завершающим нулём
(функция) [править]

[править] Вспомогательные классы

хеширование строк
(специализация шаблона класса) [править]