Пространства имён
Варианты
Действия

std::basic_string_view

Материал из cppreference.com
< cpp‎ | string
 
 
Строки
Байтовые строки с завершающим нулем
Однобайтовые строки
Многобайтовые строки
Широкие строки
Классы
basic_string_view
 
 
Определён в заголовочном файле <string_view>
template<

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

> class basic_string_view;
(начиная с C++17)

Шаблон класса basic_string_view описывает объект, который может ссылаться на постоянную непрерывную последовательность объектов char, с первым элементом последовательности в нулевой позиции.

Типичная реализация содержит только два члена: указатель на константу CharT и размер.

Предусмотрено несколько определений типов для общих типов символов:

Заголовочный файл <string_view>
Type Definition
std::string_view std::basic_string_view<char>
std::wstring_view std::basic_string_view<wchar_t>
std::u8string_view std::basic_string_view<char8_t> (C++20)
std::u16string_view std::basic_string_view<char16_t>
std::u32string_view std::basic_string_view<char32_t>

Содержание

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

CharT тип символа
Traits CharTraits класс, определяющий операции над типом символа. Как и basic_string, Traits::char_type должен быть того же типа, что и CharT, иначе программа некорретна.

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

Тип-член Определение
traits_type Traits
value_type CharT
pointer CharT*
const_pointer const CharT*
reference CharT&
const_reference const CharT&
const_iterator определяемая реализацией LegacyRandomAccessIterator, ConstexprIterator (начиная с C++20) и LegacyContiguousIterator value_type явлется CharT
iterator const_iterator
reverse_iterator const_reverse_iterator
const_reverse_iterator std::reverse_iterator<const_iterator>
size_type std::size_t
difference_type std::ptrdiff_t

Примечание. iterator и const_iterator относятся к одному и тому же типу, поскольку строковые представления являются представлениями последовательностей последовательных символов

Все требования к типам итераторов контейнера также применяются к iterator и const_iteratorдля basic_string_view.


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

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

Константы

[static]
особое значение. Зависит от контекста
(public static константа-член) [править]

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

лексикографически сравнивает два строковых представления
(шаблон функции) [править]
(C++20)
возвращает итераторы в начало и конец представления строки
(функция) [править]
Input/output
выполняет вывод потока в представлении строки
(шаблон функции) [править]

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

Пространство имён std::literals::string_view_literals
Создает строковое представление массива символов
(функция) [править]

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

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

[править] Заметки

Программист несет ответственность за то, чтобы std :: string_view не пережил массив указанных символов:

std::string_view good("a string literal");   // OK: «хорошо» указывает на статический массив
std::string_view bad("a temporary string"s); // "Плохо" содержит временный объект