Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Класс
Шаблон basic_string_view<charT> класса был добавлен в C++17, чтобы служить безопасным и эффективным способом для функции принимать различные несвязанные типы строк без необходимости шаблонизировать эти типы. Класс содержит указатель, не принадлежащий к непрерывной последовательности символьных данных, и длину, указывающую количество символов в последовательности. Предположение о том, завершается ли последовательность null, не предполагается.
Стандартная библиотека определяет несколько специализаций на основе типа элементов:
string_viewwstring_viewu16string_viewu32string_view
В описании basic_string_view минимального общего интерфейса, необходимого для чтения строковых данных. Он предоставляет константный доступ к базовым данным; он не копирует (за исключением copy функции). Данные могут содержать значения NULL (\0) в любой позиции. У объекта basic_string_view нет контроля над временем существования объекта. Это ответственность вызывающего средства, чтобы убедиться, что базовые строковые данные допустимы.
Функция, которая принимает параметр типа string_view , может быть выполнена для работы с любым строковым типом, не делая функцию в шаблоне или ограничивающей функцию определенным подмножеством строковых типов. Единственное требование заключается в том, что неявное преобразование существует из типа string_viewстроки в . Все стандартные типы строк неявно преобразуются в тип string_view , содержащий один и тот же тип элемента. Другими словами, std::string преобразуемая в нее string_viewwstring_view.
В следующем примере показана функция f , не использующую шаблон, которая принимает параметр типа wstring_view. Его можно вызывать с аргументами типа std::wstring, wchar_t*и winrt::hstring.
// compile with: /std:c++17
// string_view that uses elements of wchar_t
void f(wstring_view);
// pass a std::wstring:
const std::wstring& s { L"Hello" };
f(s);
// pass a C-style null-terminated string (string_view is not null-terminated):
const wchar_t* ns = L"Hello";
f(ns);
// pass a C-style character array of len characters (excluding null terminator):
const wchar_t* cs { L"Hello" };
size_t len { 5 };
f({cs,len});
// pass a WinRT string
winrt::hstring hs { L"Hello" };
f(hs);
Syntax
template <class CharType, class Traits = char_traits<CharType>>
class basic_string_view;
Parameters
CharType
Тип символов, хранящихся в .basic_string_view Стандартная библиотека C++ предоставляет следующие типдефы для специализаций этого шаблона.
-
string_viewдля элементов типаchar -
wstring_viewдляwchar_t -
u16string_viewдляchar16_t -
u32string_viewдляchar32_t.
Traits
По умолчанию — char_traits<CharType>.
Constructors
| Constructor | Description |
|---|---|
basic_string_view |
Создает пустой basic_string_view объект или указывает на все или часть данных другого объекта строки или массив символов в стиле C. |
Typedefs
| Type name | Description |
|---|---|
const_iterator |
Итератор случайного доступа, который может считывать const элементы. |
const_pointer |
using const_pointer = const value_type*; |
const_reference |
using const_reference = const value_type&; |
const_reverse_iterator |
using const_reverse_iterator = std::reverse_iterator<const_iterator>; |
difference_type |
using difference_type = ptrdiff_t; |
iterator |
using iterator = const_iterator; |
npos |
static constexpr size_type npos = size_type(-1); |
pointer |
using pointer = value_type*; |
reference |
using reference = value_type&; |
reverse_iterator |
using reverse_iterator = const_reverse_iterator; |
size_type |
using size_type = size_t; |
traits_type |
using traits_type = Traits; |
value_type |
using value_type = CharType; |
Member operators
| Operator | Description |
|---|---|
operator= |
Присваивает basic_string_view объекту строки или преобразуемой строке другому basic_string_viewобъекту. |
operator[] |
Возвращает элемент по указанному индексу. |
Member functions
| Member function | Description |
|---|---|
at |
const_reference Возвращает элемент в указанном расположении. |
back |
const_reference Возвращает последний элемент. |
begin |
Возвращает итератор, обращаюющийся к первому const элементу. (basic_string_views неизменяемы.) |
cbegin |
Эквивалентно begin. |
cend |
Возвращает итератор, указывающий на один прошлый const последний элемент. |
copy |
Копирует по крайней мере указанное количество символов из индексированного положения в источнике basic_string_view в целевой массив символов. (Не рекомендуется. Используйте _Copy_s вместо этого.) |
_Copy_s |
Безопасная функция копирования CRT. |
compare |
Сравнивает basic_string_view значение с заданным basic_string_view , чтобы определить, равны ли они, или если один из них лексографически меньше другого. |
crbegin |
Эквивалентно rbegin. |
crend |
Эквивалентно rend. |
data |
Возвращает необработанный указатель, не принадлежащий к последовательности символов. |
empty |
Проверяет, содержатся ли basic_string_view символы. |
end |
Эквивалентно cend. |
ends_with
C++20 |
Проверьте, заканчивается ли строковое представление указанным суффиксом. |
find |
Выполняет поиск в направлении вперед для первого вхождения подстроки, которая соответствует указанной последовательности символов. |
find_first_not_of |
Выполняет поиск первого символа, который не является элементом указанного basic_string_view или преобразуемого строкового объекта. |
find_first_of |
Выполняет поиск первого символа, соответствующего любому элементу указанного basic_string_view или преобразуемого строкового объекта. |
find_last_not_of |
Выполняет поиск последнего символа, который не является элементом указанного basic_string_view или преобразуемого строкового объекта. |
find_last_of |
Выполняет поиск последнего символа, который является элементом указанного basic_string_view или преобразуемого строкового объекта. |
front |
Возвращает первый const_reference элемент. |
length |
Возвращает текущее число элементов. |
max_size |
Возвращает максимальное количество символов, basic_string_view которые могут содержаться. |
rbegin |
const Возвращает итератор, который обращается к первому элементу в обратном basic_string_viewнаправлении. |
remove_prefix |
Перемещает указатель вперед по указанному числу элементов. |
remove_suffix |
Уменьшает размер представления по указанному количеству элементов, начиная с задней части. |
rend |
Возвращает итератор, указывающий const на один прошлый последний элемент в обратном basic_string_view. |
rfind |
basic_string_view Выполняет поиск в обратном направлении первого вхождения подстроки, которая соответствует указанной последовательности символов. |
size |
Возвращает текущее число элементов. |
starts_with
C++20 |
Проверьте, начинается ли строковое представление с заданным префиксом. |
substr |
Возвращает подстроку указанной длины, начиная с указанного индекса. |
swap |
Обмен содержимого двух basic_string_view объектов. |
Remarks
Если функция запрашивается создать последовательность дольше max_size элементов, функция сообщает об ошибке длины путем создания объекта типа length_error.
Requirements
/std:c++17 или более поздняя версия.
Header:<string_view>
Namespace:std
basic_string_view::at
const_reference Возвращает символ в указанном отсчитываемом от нуля индексе.
constexpr const_reference at(size_type offset) const;
Parameters
offset
Индекс элемента, на который необходимо ссылаться.
Return value
Символ const_reference в позиции, указанной индексом параметра.
Remarks
Первый элемент имеет индекс нулевого значения, а следующие элементы индексируются последовательно положительными целыми числами, поэтому basic_string_view длина n имеет элемент *n*th, индексируемый числом n - 1.
at создает исключение для недопустимых индексов, в отличие operator[]от .
Как правило, мы рекомендуем использовать at такие последовательности, как std::vector и basic_string_view никогда не следует использовать. Недопустимый индекс, передаваемый последовательности, — это ошибка логики, которая должна быть обнаружена и исправлена во время разработки. Если программа не уверена, что его индексы действительны, она должна протестировать их, а не вызывать at() и полагаться на исключения для защиты от неосторожного программирования.
Дополнительные сведения см. в разделе basic_string_view::operator[].
Example
// basic_string_view_at.cpp
// compile with: /EHsc
#include <string_view>
#include <iostream>
int main()
{
using namespace std;
const string_view str1("Hello world");
string_view::const_reference refStr2 = str1.at(8); // 'r'
}
basic_string_view::back
const_reference Возвращает последний элемент.
constexpr const_reference back() const;
Return value
До const_reference последнего элемента в элементе basic_string_view.
Remarks
Создает исключение, если пустой basic_string_view .
Помните, что после basic_string_view изменения, например путем вызова remove_suffix, элемент, возвращаемый этой функцией, больше не является последним элементом в базовых данных.
Example
Объект, string_view созданный с помощью строкового литерала C, не включает завершающий значение NULL. Поэтому в следующем примере back возвращается 'p' и не возвращается '\0'.
char c[] = "Help"; // char[5]
string_view sv{ c };
cout << sv.size(); // size() == 4
cout << sv.back() << endl; // p
Внедренные значения NULL обрабатываются как любой другой символ:
string_view e = "embedded\0nulls"sv;
cout << boolalpha << (e.back() == 's'); // true
basic_string_view::basic_string_view
Создает документ basic_string_view.
constexpr basic_string_view() noexcept;
constexpr basic_string_view(const basic_string_view&) noexcept = default;
constexpr basic_string_view(const charT* str);
constexpr basic_string_view(const charT* str, size_type len);
Parameters
str
Указатель на значения символов.
len
Число символов, включаемых в представление.
Remarks
Конструкторы с параметром charT* предполагают, что входные данные завершаются значением NULL, но завершающий значение NULL не включается в параметр basic_string_view.
Можно также создать литерал basic_string_view . См. раздел operator"" sv.
basic_string_view::begin
Эквивалентно cbegin.
constexpr const_iterator begin() const noexcept;
Return value
const_iterator Возвращает адресацию первого элемента.
basic_string_view::cbegin
Возвращает адрес const_iterator первого элемента в диапазоне.
constexpr const_iterator cbegin() const noexcept;
Return value
Итератор случайного доступа const, который указывает на первый элемент диапазона или расположение прямо за концом пустого диапазона (cbegin() == cend() для пустого диапазона).
basic_string_view::cend
Возвращает адрес const_iterator расположения только за пределами последнего элемента в диапазоне.
constexpr const_iterator cend() const noexcept;
Return value
Итератор const с произвольным доступом, который указывает конец диапазона.
Remarks
Возвращаемое cend значение не должно быть разоменовывано.
basic_string_view::compare
Выполняет сравнение с учетом регистра с указанным basic_string_view (или преобразуемым типом строки), чтобы определить, равны ли два объекта или если один из них лексографически меньше другого. Операторы <string_view> используют эту функцию-член для сравнения.
constexpr int compare(basic_string_view strv) const noexcept;
constexpr int compare(size_type pos, size_type num, basic_string_view strv) const;
constexpr int compare(size_type pos, size_type num, basic_string_view strv, size_type offset, size_type num2) const;
constexpr int compare(const charT* ptr) const;
constexpr int compare(size_type pos, size_type num, const charT* ptr) const;
constexpr int compare(size_type pos, size_type num, const charT* ptr, size_type num2) const;
Parameters
strv
То basic_string_view , что нужно сравнить с этим basic_string_view.
pos
Индекс этого basic_string_view , с которого начинается сравнение.
num
Максимальное количество символов, basic_string_view которые необходимо сравнить.
num2
Максимальное число символов для strv сравнения.
offset
Индекс, strv с которого начинается сравнение.
ptr
Строка C, которая будет сравниваться с этим basic_string_view.
Return value
- Отрицательное значение, если это
basic_string_viewменьше или меньшеstrvилиptr - Ноль, если две последовательности символов равны
- Положительное значение, если это
basic_string_viewбольшеstrvилиptr
Remarks
compare Функции-члены выполняют сравнение всех или частей каждой последовательности символов с учетом регистра.
Example
// basic_string_view_compare.cpp
// compile with: /EHsc
#include <string_view>
#include <iostream>
#include <string>
using namespace std;
string to_alpha(int result)
{
if (result < 0) return " less than ";
else if (result == 0) return " equal to ";
else return " greater than ";
}
int main()
{
// The first member function compares
// two string_views
string_view sv_A("CAB");
string_view sv_B("CAB");
cout << "sv_A is " << sv_A << endl;
cout << "sv_B is " << sv_B << endl;
int comp1 = sv_A.compare(sv_B);
cout << "sv_A is" << to_alpha(comp1) << "sv_B.\n";
// The second member function compares part of
// an operand string_view to another string_view
string_view sv_C("AACAB");
string_view sv_D("CAB");
cout << "sv_C is: " << sv_C << endl;
cout << "sv_D is: " << sv_D << endl;
int comp2a = sv_C.compare(2, 3, sv_D);
cout << "The last three characters of sv_C are"
<< to_alpha(comp2a) << "sv_D.\n";
int comp2b = sv_C.compare(0, 3, sv_D);
cout << "The first three characters of sv_C are"
<< to_alpha(comp2b) << "sv_D.\n";
// The third member function compares part of
// an operand string_view to part of another string_view
string_view sv_E("AACAB");
string_view sv_F("DCABD");
cout << "sv_E: " << sv_E << endl;
cout << "sv_F is: " << sv_F << endl;
int comp3a = sv_E.compare(2, 3, sv_F, 1, 3);
cout << "The three characters from position 2 of sv_E are"
<< to_alpha(comp3a)
<< "the 3 characters of sv_F from position 1.\n";
// The fourth member function compares
// an operand string_view to a C string
string_view sv_G("ABC");
const char* cs_A = "DEF";
cout << "sv_G is: " << sv_G << endl;
cout << "cs_A is: " << cs_A << endl;
int comp4a = sv_G.compare(cs_A);
cout << "sv_G is" << to_alpha(comp4a) << "cs_A.\n";
// The fifth member function compares part of
// an operand string_view to a C string
string_view sv_H("AACAB");
const char* cs_B = "CAB";
cout << "sv_H is: " << sv_H << endl;
cout << "cs_B is: " << cs_B << endl;
int comp5a = sv_H.compare(2, 3, cs_B);
cout << "The last three characters of sv_H are"
<< to_alpha(comp5a) << "cs_B.\n";
// The sixth member function compares part of
// an operand string_view to part of an equal length of
// a C string
string_view sv_I("AACAB");
const char* cs_C = "ACAB";
cout << "sv_I is: " << sv_I << endl;
cout << "cs_C: " << cs_C << endl;
int comp6a = sv_I.compare(1, 3, cs_C, 3);
cout << "The 3 characters from position 1 of sv_I are"
<< to_alpha(comp6a) << "the first 3 characters of cs_C.\n";
}
sv_A is CAB
sv_B is CAB
sv_A is equal to sv_B.
sv_C is: AACAB
sv_D is: CAB
The last three characters of sv_C are equal to sv_D.
The first three characters of sv_C are less than sv_D.
sv_E: AACAB
sv_F is: DCABD
The three characters from position 2 of sv_E are equal to the 3 characters of sv_F from position 1.
sv_G is: ABC
cs_A is: DEF
sv_G is less than cs_A.
sv_H is: AACAB
cs_B is: CAB
The last three characters of sv_H are equal to cs_B.
sv_I is: AACAB
cs_C: ACAB
The 3 characters from position 1 of sv_I are equal to the first 3 characters of cs_C.
basic_string_view::copy
Копирует по крайней мере указанное количество символов из индексированного положения в источнике basic_string_view в целевой массив символов. Вместо этого рекомендуется использовать безопасную функцию basic_string_view::_Copy_s .
size_type copy(charT* ptr, size_type count, size_type offset = 0) const;
Parameters
ptr
Целевой массив символов, в который должны быть скопированы элементы.
count
Число символов, копируемых в большинстве случаев из источника basic_string_view.
offset
Начальная позиция в источнике basic_string_view , из которого должны быть сделаны копии.
Return value
Число скопированных символов.
Remarks
Пустой символ не добавляется в конец копии.
basic_string_view::_Copy_s
Безопасная функция копирования CRT, используемая вместо copy.
size_type _Copy_s(
value_type* dest,
size_type dest_size,
size_type count,
size_type _Off = 0) const;
Parameters
dest
Целевой массив символов, в который должны быть скопированы элементы.
dest_size
Размер dest.
count Число символов, копируемых в большинстве случаев из исходной строки.
_Off
Начальная позиция в исходной строке, из которой должны быть сделаны копии.
Return value
Число скопированных символов.
Remarks
Пустой символ не добавляется в конец копии.
For more information, see c-runtime-library/security-features-in-the-crt.
basic_string_view::crbegin
Возвращает объект const_reverse_iterator , который обращается к первому элементу в обратном basic_string_viewнаправлении.
constexpr const_reverse_iterator crbegin() const noexcept;
Return value
Объект, const_reverse_iterator который обращается к первому элементу в обратном basic_string_viewнаправлении.
basic_string_view::crend
Эквивалентно rend.
constexpr const_reverse_iterator crend() const noexcept;
Return value
Возвращает адрес const_reverse_iterator , который обращается к одному после конца обратного basic_string_view.
basic_string_view::data
Возвращает необработанный указатель, не принадлежащий константной последовательности символов объекта, который использовался для создания basic_string_viewобъекта.
constexpr value_type *data() const noexcept;
Return value
Указатель на констант к первому элементу последовательности символов.
Remarks
Указатель не может изменить символы.
Последовательность basic_string_view символов не обязательно завершается значением NULL. Тип возвращаемого значения data не является допустимой строкой C, так как значение NULL не добавляется. Символ NULL \0 не имеет специального значения в объекте типа basic_string_view и может быть частью basic_string_view объекта так же, как и любой другой символ.
basic_string_view::empty
Проверяет, содержит ли basic_string_view символы или нет.
constexpr bool empty() const noexcept;
Return value
true Значение false если он имеет хотя бы один символ.
Remarks
Функция-член эквивалентна size() == 0.
basic_string_view::end
Возвращает случайный доступ const_iterator , указывающий на один из последних элементов.
constexpr const_iterator end() const noexcept;
Return value
Возвращает случайный доступ const_iterator , указывающий на один из последних элементов.
Remarks
endиспользуется для проверки того, достигла ли const_iterator его конца.basic_string_view Возвращаемое end значение не должно быть разоменовывано.
basic_string_view::ends_with
Проверьте, заканчивается ли строковое представление указанным суффиксом.
bool ends_with(const CharType c) const noexcept;
bool ends_with(const CharType* const x) const noexcept;
bool ends_with(const basic_string_view sv) const noexcept;
Parameters
c
Суффикс одного символа для поиска.
sv
Строковое представление, содержащее суффикс для поиска.
Можно передать объект std::basic_string, который преобразуется в basic_string_view.
x
Строка символов, завершающая значение NULL, содержащая суффикс для поиска.
Return value
true Значение , если строковое представление заканчивается указанным суффиксом; false иначе.
Remarks
ends_with() новый в C++20. Чтобы использовать его, укажите или более поздний /std:c++20 параметр компилятора.
Проверьте starts_with , начинается ли строковое представление с указанным префиксом.
Example
// Requires /std:c++20 or later
#include <string>
#include <iostream>
int main()
{
std::cout << std::boolalpha; // so booleans show as 'true'/'false'
std::cout << std::string_view("abcdefg").ends_with('g') << '\n';
std::cout << std::string_view("abcdefg").ends_with("eFg") << '\n';
std::basic_string<char> str2 = "efg";
std::cout << std::string_view("abcdefg").ends_with(str2);
return 0;
}
true
false
true
basic_string_view::find
basic_string_view Выполняет поиск в направлении вперед для первого вхождения символа или подстроки, которая соответствует указанной последовательности символов.
constexpr size_type find(basic_string_view str, size_type offset = 0) const noexcept;
constexpr size_type find(charT chVal, size_type offset = 0) const noexcept;
constexpr size_type find(const charT* ptr, size_type offset, size_type count) const;
constexpr size_type find(const charT* ptr, size_type offset = 0) const;
Parameters
str
Значение basic_string_view , для которого выполняется поиск функции-члена.
chVal
Значение символа, для которого следует искать функцию-член.
offset
Индекс, с которого начинается поиск.
ptr
Строка C, для которой выполняется поиск функции-члена.
count
Число символов в ptr, подсчет от первого символа.
Return value
Индекс первого символа искомой подстроки, если она успешно найдена; в противном случае — npos.
basic_string_view::find_first_not_of
Выполняет поиск первого символа, который не является элементом указанного basic_string_view или преобразуемого строкового объекта.
constexpr size_type find_first_not_of(basic_string_view str, size_type offset = 0) const noexcept;
constexpr size_type find_first_not_of(charT chVal, size_type offset = 0) const noexcept;
constexpr size_type find_first_not_of(const charT* ptr, size_type offset, size_type count) const;
constexpr size_type find_first_not_of(const charT* ptr, size_type offset = 0) const;
Parameters
str
Значение basic_string_view , для которого выполняется поиск функции-члена.
chVal
Значение символа, для которого следует искать функцию-член.
offset
Индекс, с которого начинается поиск.
ptr
Строка C, для которой выполняется поиск функции-члена.
count
Число символов, отсчитываемых от первого символа, в строке C, для которой выполняется поиск функции-члена.
Return value
Индекс первого символа искомой подстроки, если она успешно найдена; в противном случае — npos.
basic_string_view::find_first_of
Выполняет поиск первого символа, соответствующего любому элементу указанного basic_string_viewэлемента.
constexpr size_type find_first_of(basic_string_view str, size_type offset = 0) const noexcept;
constexpr size_type find_first_of(charT chVal, size_type offset = 0) const noexcept;
constexpr size_type find_first_of(const charT* str, size_type offset, size_type count) const;
constexpr size_type find_first_of(const charT* str, size_type offset = 0) const;
Parameters
chVal
Значение символа, для которого следует искать функцию-член.
offset
Индекс, с которого начинается поиск.
ptr
Строка C, для которой выполняется поиск функции-члена.
count
Число символов, отсчитываемых от первого символа, в строке C, для которой выполняется поиск функции-члена.
str
Значение basic_string_view , для которого выполняется поиск функции-члена.
Return value
Индекс первого символа искомой подстроки, если она успешно найдена; в противном случае — npos.
basic_string_view::find_last_not_of
Выполняет поиск последнего символа, который не является элементом указанного basic_string_viewэлемента.
constexpr size_type find_last_not_of(basic_string_view str, size_type offset = npos) const noexcept;
constexpr size_type find_last_not_of(charT chVal, size_type offset = npos) const noexcept;
constexpr size_type find_last_not_of(const charT* ptr, size_type offset, size_type count) const;
constexpr size_type find_last_not_of(const charT* ptr, size_type offset = npos) const;
Parameters
str
Значение basic_string_view , для которого выполняется поиск функции-члена.
chVal
Значение символа, для которого следует искать функцию-член.
offset
Индекс, по которому выполняется поиск.
ptr
Строка C, для которой выполняется поиск функции-члена.
count
Число символов, отсчитываемых от первого символа, в ptr.
Return value
Индекс первого символа искомой подстроки, если она успешно найдена; в противном случае — string_view::npos.
basic_string_view::find_last_of
Выполняет поиск последнего символа, соответствующего любому элементу указанного basic_string_viewэлемента.
constexpr size_type find_last_of(basic_string_view str, size_type offset = npos) const noexcept;
constexpr size_type find_last_of(charT chVal, size_type offset = npos) const noexcept;
constexpr size_type find_last_of(const charT* ptr, size_type offset, size_type count) const;
constexpr size_type find_last_of(const charT* ptr, size_type offset = npos) const;
Parameters
str
Значение basic_string_view , для которого выполняется поиск функции-члена.
chVal
Значение символа, для которого следует искать функцию-член.
offset
Индекс, по которому выполняется поиск.
ptr
Строка C, для которой выполняется поиск функции-члена.
count
Число символов, отсчитываемых от первого символа, в строке C, для которой выполняется поиск функции-члена.
Return value
Индекс последнего символа искомой подстроки, если он был успешно найден; в противном случае — npos.
basic_string_view::front
Возвращает первый const_reference элемент.
constexpr const_reference front() const;
Return value
К const_reference первому элементу.
Remarks
Создает исключение, если пустой basic_string_view .
basic_string_view::length
Возвращает текущее число элементов.
constexpr size_type length() const noexcept;
Remarks
Функция-член совпадает с sizeфункцией-членом.
basic_string_view::max_size
Возвращает максимальное число символов, basic_string_view которые могут содержаться.
constexpr size_type max_size() const noexcept;
Return value
Максимальное количество символов, basic_string_view которые могут содержаться.
Remarks
Исключение типа length_error возникает, когда операция создает basic_string_view длину с большей max_size()длиной.
basic_string_view::operator=
Присваивает basic_string_view объекту строки или преобразуемой строке другому basic_string_viewобъекту.
constexpr basic_string_view& operator=(const basic_string_view&) noexcept = default;
Example
string_view s = "Hello";
string_view s2 = s;
basic_string_view::operator[]
const_reference Предоставляет символ с указанным индексом.
constexpr const_reference operator[](size_type offset) const;
Parameters
offset
Индекс элемента, на который необходимо ссылаться.
Return value
Символ const_reference в позиции, указанной индексом параметра.
Remarks
Первый элемент имеет индекс нулевого значения, а следующие элементы индексируются последовательно положительными целыми числами, поэтому basic_string_view длина n имеет элемент *n*th, индексируемый числом n-1.
operator[] быстрее, чем функция-член at для предоставления доступа на чтение к элементам объекта basic_string_view.
operator[] не проверяет, является ли индекс допустимым в качестве аргумента. Недопустимый индекс, operator[] переданный в результаты неопределенного поведения.
Возвращаемая ссылка может быть недопустима, если базовые строковые данные изменяются или удаляются объектом владения.
При компиляции с _ITERATOR_DEBUG_LEVEL набором 1 или 2 при попытке доступа к элементу за пределами границ среды basic_string_viewвыполнения возникнет ошибка. For more information, see Checked Iterators.
basic_string_view::rbegin
const Возвращает итератор первому элементу в обратном basic_string_viewпорядке.
constexpr const_reverse_iterator rbegin() const noexcept;
Return value
Возвращает итератор случайного доступа к первому элементу в обратном порядке basic_string_view, обращаясь к последнему элементу в соответствующем неуправляемом элементе basic_string_view.
Remarks
rbegin используется с обратным basic_string_view так же, как begin используется с basic_string_view.
rbegin можно использовать для итерации обратной итерации.
basic_string_view::remove_prefix
Перемещает указатель вперед по указанному числу элементов.
constexpr void remove_prefix(size_type n);
Remarks
Оставляет базовые данные неизменными.
basic_string_view Перемещает указатель вперед по n элементам и задает для члена частных size данных значение size - n.
basic_string_view::remove_suffix
Уменьшает размер представления по указанному количеству элементов, начиная с задней части.
constexpr void remove_suffix(size_type n);
Remarks
Оставляет базовые данные и указатель на него без изменений. Задает для члена частных size данных значение size - n.
basic_string_view::rend
Возвращает итератор, указывающий const на один прошлый последний элемент в обратном basic_string_view.
constexpr reverse_iterator rend() const noexcept;
Return value
Обратный const итератор случайного доступа, указывающий на один прошлый последний элемент в обратном basic_string_view.
Remarks
rend используется с обратным basic_string_view так же, как end используется с basic_string_view.
rend можно использовать для проверки того, достиг ли обратный итератор конца его basic_string_view. Возвращаемое rend значение не должно быть разоменовывано.
basic_string_view::rfind
basic_string_view Выполняет поиск в обратном направлении подстроки, которая соответствует указанной последовательности символов.
constexpr size_type rfind(basic_string_view str, size_type offset = npos) const noexcept;
constexpr size_type rfind(charT chVal, size_type offset = npos) const noexcept;
constexpr size_type rfind(const charT* ptr, size_type offset, size_type count) const;
constexpr size_type rfind(const charT* ptr, size_type offset = npos) const;
Parameters
chVal
Значение символа, для которого следует искать функцию-член.
offset
Индекс, с которого начинается поиск.
ptr
Строка C, для которой выполняется поиск функции-члена.
count
Число символов, отсчитываемых от первого символа, в строке C, для которой выполняется поиск функции-члена.
str
Значение basic_string_view , для которого выполняется поиск функции-члена.
Return value
Индекс первого символа подстроки при успешном выполнении; в противном случае npos.
basic_string_view::size
Возвращает количество элементов в контейнере basic_string_view.
constexpr size_type size() const noexcept;
Return value
Длина basic_string_view.
Remarks
Объект basic_string_view может изменять длину, например по remove_prefix и remove_suffix. Так как это не изменяет базовые строковые данные, размер не basic_string_view обязательно является размером базовых данных.
basic_string_view::starts_with
Проверьте, начинается ли строковое представление с указанным префиксом.
bool starts_with(const CharType c) const noexcept;
bool starts_with(const CharType* const x) const noexcept;
bool starts_with(const basic_string_view sv) const noexcept;
Parameters
c
Префикс одного символа для поиска.
sv
Строковое представление, содержащее префикс для поиска.
Можно передать объект std::basic_string, который преобразуется в строковое представление.
x
Строка символов, завершающая значение NULL, содержащая префикс для поиска.
Return value
true Значение , если строка начинается с указанного префикса; false иначе.
Remarks
starts_with() новый в C++20. Чтобы использовать его, укажите или более поздний /std:c++20 параметр компилятора.
Чтобы ends_with узнать, заканчивается ли строка суффиксом.
Example
// Requires /std:c++20 or later
#include <string>
#include <iostream>
int main()
{
std::cout << std::boolalpha; // so booleans show as 'true'/'false'
std::cout << std::string_view("abcdefg").starts_with('b') << '\n';
std::cout << std::string_view("abcdefg").starts_with("aBc") << '\n';
std::basic_string<char> str2 = "abc";
std::cout << std::string_view("abcdefg").starts_with(str2);
return 0;
}
false
false
true
basic_string_view::substr
Возвращает значение basic_string_view , представляющее (не более чем) указанное число символов из указанной позиции.
constexpr basic_string_view substr(size_type offset = 0, size_type count = npos) const;
Parameters
offset
Индекс, на котором находится элемент в позиции, из которой выполняется копия, со значением по умолчанию 0.
count
Количество символов, включаемых в подстроку, если они присутствуют.
Return value
basic_string_view Объект, представляющий указанный вложенный элемент.
basic_string_view::swap
Обмен двумя basic_string_viewзначениями, другими словами, указателями на базовые строковые данные и значения размера.
constexpr void swap(basic_string_view& sv) noexcept;
Parameters
sv
Источник basic_string_view , значения указателя и размера которого должны быть обмениваются значениями назначения basic_string_view.
See also
<string_view>
Потокобезопасность в стандартной библиотеке C++