Partilhar via


basic_string_view classe

O modelo basic_string_view<charT> de classe foi adicionado em C++17 para servir como uma maneira segura e eficiente para uma função aceitar vários tipos de cadeia de caracteres não relacionados sem que a função tenha que ser modelada nesses tipos. A classe contém um ponteiro não proprietário para uma sequência contígua de dados de caracteres e um comprimento que especifica o número de caracteres na sequência. Nenhuma suposição é feita sobre se a sequência é terminada nula.

A biblioteca padrão define várias especializações com base no tipo dos elementos:

  • string_view
  • wstring_view
  • u16string_view
  • u32string_view

A basic_string_view descreve a interface comum mínima necessária para ler dados de cadeia de caracteres. Proporciona acesso constante aos dados subjacentes; não faz cópias (exceto para a copy função). Os dados podem ou não conter valores nulos (\0) em qualquer posição. A basic_string_view não tem controle sobre a vida útil do objeto. É responsabilidade do chamador garantir que os dados da cadeia de caracteres subjacente sejam válidos.

Uma função que aceita um parâmetro de tipo string_view pode ser feita para trabalhar com qualquer tipo de cadeia de caracteres, sem transformar a função em um modelo ou restringir a função a um subconjunto específico de tipos de cadeia de caracteres. O único requisito é que exista uma conversão implícita do tipo string para string_view. Todos os tipos de cadeia de caracteres padrão são implicitamente conversíveis em um string_view que contém o mesmo tipo de elemento. Em outras palavras, a std::string é conversível em um string_view , mas não em um wstring_view.

O exemplo a seguir mostra uma função f não-modelo que usa um parâmetro do tipo wstring_view. Pode ser chamado com argumentos do tipo std::wstring, wchar_t*, e 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
O tipo de caracteres armazenados no basic_string_view. A Biblioteca Padrão C++ fornece os seguintes typedefs para especializações deste modelo.

Traits
O padrão é char_traitsCharType<>.

Constructors

Constructor Description
basic_string_view Constrói um basic_string_view que está vazio ou então aponta para todos ou parte dos dados de algum outro objeto de cadeia de caracteres ou para uma matriz de caracteres estilo C.

Typedefs

Type name Description
const_iterator Iterador de acesso aleatório que pode ler const elementos.
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= Atribui um basic_string_view objeto de cadeia de caracteres conversível a outro basic_string_viewarquivo .
operator[] Retorna o elemento no índice especificado.

Member functions

Member function Description
at Retorna a const_reference para o elemento em um local especificado.
back Retorna a const_reference ao último elemento.
begin Retorna um const iterador endereçando o primeiro elemento. (basic_string_views são imutáveis.)
cbegin O mesmo que begin.
cend Retorna um const iterador que aponta para um passado do último elemento.
copy Copia no máximo um número especificado de caracteres de uma posição indexada em uma origem basic_string_view para uma matriz de caracteres de destino. (Não recomendado. Use _Copy_s em vez disso.)
_Copy_s Função de cópia CRT segura.
compare Compara a basic_string_view com um especificado basic_string_view para determinar se são iguais ou se um é lexicograficamente menor que o outro.
crbegin O mesmo que rbegin.
crend O mesmo que rend.
data Retorna um ponteiro bruto não proprietário para a sequência de caracteres.
empty Testa se o basic_string_view contém caracteres.
end O mesmo que cend.
ends_with C++20 Verifique se uma exibição de cadeia de caracteres termina com um sufixo especificado.
find Procura em uma direção direta a primeira ocorrência de uma substring que corresponde a uma sequência especificada de caracteres.
find_first_not_of Procura o primeiro caractere que não é qualquer elemento de um objeto de cadeia de caracteres especificado basic_string_view ou conversível.
find_first_of Procura o primeiro caractere que corresponde a qualquer elemento de um objeto de cadeia de caracteres especificado basic_string_view ou conversível.
find_last_not_of Procura o último caractere que não é qualquer elemento de um objeto de cadeia de caracteres especificado basic_string_view ou conversível.
find_last_of Procura o último caractere que é um elemento de um objeto de cadeia de caracteres especificado basic_string_view ou conversível.
front Retorna a const_reference ao primeiro elemento.
length Retorna o número atual de elementos.
max_size Devolve o número máximo de carateres que a basic_string_view poderia conter.
rbegin Retorna um const iterador que aborda o primeiro elemento em um arquivo basic_string_view.
remove_prefix Move o ponteiro para frente pelo número especificado de elementos.
remove_suffix Reduz o tamanho da exibição pelo número especificado de elementos começando pela parte de trás.
rend Retorna um const iterador que aponta para um passado do último elemento em um arquivo basic_string_view.
rfind Pesquisa um basic_string_view in reverse para a primeira ocorrência de uma substring que corresponde a uma sequência especificada de caracteres.
size Retorna o número atual de elementos.
starts_with C++20 Verifique se uma exibição de cadeia de caracteres começa com um determinado prefixo.
substr Retorna uma substring de um comprimento especificado começando em um índice especificado.
swap Troque o conteúdo de dois basic_string_view objetos.

Remarks

Se uma função for solicitada a gerar uma sequência maior do que max_size elementos, a função relatará um erro de comprimento lançando um objeto do tipo length_error.

Requirements

/std:c++17 ou mais tarde.

Header:<string_view>

Namespace:std

basic_string_view::at

Retorna a const_reference para o caractere no índice baseado em zero especificado.

constexpr const_reference at(size_type offset) const;

Parameters

offset
O índice do elemento a ser referenciado.

Return value

A const_reference para o caractere na posição especificada pelo índice do parâmetro.

Remarks

O primeiro elemento tem um índice de zero e os seguintes elementos são indexados consecutivamente pelos inteiros positivos, de modo que um basic_string_view de comprimento n tem um *n*th elemento indexado pelo número n - 1. at lança uma exceção para índices inválidos, ao contrário operator[]de .

Em geral, recomendamos que at para sequências como std::vector e basic_string_view nunca devem ser usadas. Um índice inválido passado para uma sequência é um erro de lógica que deve ser descoberto e corrigido durante o desenvolvimento. Se um programa não tem certeza de que seus índices são válidos, ele deve testá-los, não chamar at() e confiar em exceções para se defender contra programação descuidada.

Para obter mais informações, consulte 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

Retorna a const_reference ao último elemento.

constexpr const_reference back() const;

Return value

A const_reference até ao último elemento do basic_string_view.

Remarks

Lança uma exceção se o basic_string_view estiver vazio.

Lembre-se de que, depois que um basic_string_view é modificado, por exemplo, chamando remove_suffix, o elemento retornado por essa função não é mais o último elemento nos dados subjacentes.

Example

A string_view que é construído com um literal de cadeia de caracteres C não inclui o nulo de terminação. Assim, no exemplo a seguir, back retorna 'p' e não '\0'.

char c[] = "Help"; // char[5]
string_view sv{ c };
cout << sv.size(); // size() == 4
cout << sv.back() << endl; // p

Nulos incorporados são tratados como qualquer outro caractere:

string_view e = "embedded\0nulls"sv;
cout << boolalpha << (e.back() == 's'); // true

basic_string_view::basic_string_view

Constrói um 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
O ponteiro para os valores de caractere.

len
O número de caracteres a serem incluídos no modo de exibição.

Remarks

Os construtores com um charT* parâmetro assumem que a entrada é null-terminated, mas o terminating null não está incluído no basic_string_view.

Você também pode construir um basic_string_view com um literal. Consulte operator"" sv.

basic_string_view::begin

O mesmo que cbegin.

constexpr const_iterator begin() const noexcept;

Return value

Retorna um const_iterator endereçamento do primeiro elemento.

basic_string_view::cbegin

Retorna um const_iterator que aborda o primeiro elemento no intervalo.

constexpr const_iterator cbegin() const noexcept;

Return value

Um iterador de acesso aleatório const que aponta para o primeiro elemento do intervalo ou para o local logo após o final de um intervalo vazio (para um intervalo vazio, cbegin() == cend()).

basic_string_view::cend

Retorna um const_iterator que aborda o local logo após o último elemento de um intervalo.

constexpr const_iterator cend() const noexcept;

Return value

Um const iterador de acesso aleatório que aponta para além do final do intervalo.

Remarks

O valor retornado por cend não deve ser desreferenciado.

basic_string_view::compare

Faz uma comparação que diferencia maiúsculas de minúsculas com um especificado basic_string_view (ou um tipo de cadeia de caracteres conversível) para determinar se os dois objetos são iguais ou se um é lexicograficamente menor que o outro. Os <string_view> operadores usam essa função de membro para fazer comparações.

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
O basic_string_view que deve ser comparado a este basic_string_view.

pos
O índice deste basic_string_view em que a comparação começa.

num
O número máximo de caracteres a basic_string_view ser comparado.

num2
O número máximo de caracteres a strv serem comparados.

offset
O índice em strv que a comparação começa.

ptr
A cadeia de caracteres C a ser comparada com esta basic_string_view.

Return value

  • Um valor negativo se este basic_string_view for inferior strv ou ptr
  • Zero se as duas sequências de caracteres forem iguais
  • Um valor positivo se for basic_string_view superior ou strvptr

Remarks

As compare funções de membro fazem uma comparação que diferencia maiúsculas de minúsculas de cada sequência de caracteres.

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

Copia no máximo um número especificado de caracteres de uma posição indexada em uma origem basic_string_view para uma matriz de caracteres de destino. Recomendamos que você use a função basic_string_view::_Copy_s segura em vez disso.

size_type copy(charT* ptr, size_type count, size_type offset = 0) const;

Parameters

ptr
A matriz de caracteres de destino para a qual os elementos devem ser copiados.

count
O número de caracteres a serem copiados, no máximo, da fonte basic_string_view.

offset
A posição inicial na fonte basic_string_view a partir da qual as cópias devem ser feitas.

Return value

O número de caracteres copiados.

Remarks

Um caractere nulo não é anexado ao final da cópia.

basic_string_view::_Copy_s

Função de cópia CRT segura a ser usada em vez de copy.

size_type _Copy_s(
    value_type* dest,
    size_type dest_size,
    size_type count,
    size_type _Off = 0) const;

Parameters

dest
A matriz de caracteres de destino para a qual os elementos devem ser copiados.

dest_size
O tamanho de dest.

count O número de caracteres a serem copiados, no máximo, da cadeia de caracteres de origem.

_Off
A posição inicial na cadeia de caracteres de origem a partir da qual as cópias devem ser feitas.

Return value

O número de caracteres copiados.

Remarks

Um caractere nulo não é anexado ao final da cópia.

For more information, see c-runtime-library/security-features-in-the-crt.

basic_string_view::crbegin

Retorna um const_reverse_iterator que aborda o primeiro elemento em um arquivo basic_string_view.

constexpr const_reverse_iterator crbegin() const noexcept;

Return value

A const_reverse_iterator que aborda o primeiro elemento em um arquivo basic_string_view.

basic_string_view::crend

O mesmo que rend.

constexpr const_reverse_iterator crend() const noexcept;

Return value

Retorna um const_reverse_iterator que aborda um após o final de um arquivo basic_string_view.

basic_string_view::data

Retorna um ponteiro bruto não proprietário para a sequência de caracteres const do objeto que foi usado para construir o basic_string_view.

constexpr value_type *data() const noexcept;

Return value

Um ponteiro para const para o primeiro elemento da sequência de caracteres.

Remarks

O ponteiro não pode modificar os caracteres.

Uma sequência de basic_string_view caracteres não é necessariamente terminada em nulo. O tipo de retorno para data não é uma cadeia de caracteres C válida, porque nenhum caractere nulo é acrescentado. O caractere \0 nulo não tem significado especial em um objeto do tipo basic_string_view e pode ser uma parte do basic_string_view objeto como qualquer outro caractere.

basic_string_view::empty

Testa se o basic_string_view contém caracteres ou não.

constexpr bool empty() const noexcept;

Return value

true se o basic_string_view objeto não contiver caracteres, false se tiver pelo menos um caractere.

Remarks

A função de membro é equivalente a size() == 0.

basic_string_view::end

Retorna um acesso const_iterator aleatório que aponta para um passado do último elemento.

constexpr const_iterator end() const noexcept;

Return value

Retorna um acesso const_iterator aleatório que aponta para um passado do último elemento.

Remarks

end é utilizado para testar se a const_iterator atingiu o final do seu basic_string_view. O valor retornado por end não deve ser desreferenciado.

basic_string_view::ends_with

Verifique se a exibição de cadeia de caracteres termina com o sufixo especificado.

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
O sufixo de caractere único a ser procurado.

sv
Uma vista de cadeia de caracteres que contém o sufixo a procurar.
Você pode passar um std::basic_string, que se converte em um basic_string_viewarquivo .

x
Cadeia de caracteres terminada em nulo que contém o sufixo a procurar.

Return value

true se a visualização de cadeia de caracteres terminar com o sufixo especificado; false caso contrário.

Remarks

ends_with() é novo no C++20. Para usá-lo, especifique a opção de compilador /std:c++20 ou posterior.

Consulte starts_with para verificar se uma exibição de cadeia de caracteres começa com o prefixo especificado.

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

Procura a basic_string_view primeira ocorrência de um caractere ou substring que corresponda a uma sequência especificada de caractere(s).

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
A basic_string_view função para a qual o membro é pesquisar.

chVal
O valor do caractere para o qual a função de membro deve pesquisar.

offset
Índice no qual a pesquisa deve começar.

ptr
A cadeia de caracteres C para a qual a função de membro deve pesquisar.

count
O número de caracteres no ptr, contando para frente a partir do primeiro caractere.

Return value

O índice do primeiro caractere da substring pesquisada quando bem-sucedida; caso contrário npos.

basic_string_view::find_first_not_of

Procura o primeiro caractere que não é um elemento de um objeto de cadeia de caracteres especificado basic_string_view ou conversível.

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
A basic_string_view função para a qual o membro é pesquisar.

chVal
O valor do caractere para o qual a função de membro deve pesquisar.

offset
Índice no qual a pesquisa deve começar.

ptr
A cadeia de caracteres C para a qual a função de membro deve pesquisar.

count
O número de caracteres, contando para frente a partir do primeiro caractere, na cadeia de caracteres C para a qual a função de membro deve pesquisar.

Return value

O índice do primeiro caractere da substring pesquisada quando bem-sucedida; caso contrário npos.

basic_string_view::find_first_of

Procura o primeiro caractere que corresponde a qualquer elemento de um arquivo .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
O valor do caractere para o qual a função de membro deve pesquisar.

offset
Índice no qual a pesquisa deve começar.

ptr
A cadeia de caracteres C para a qual a função de membro deve pesquisar.

count
O número de caracteres, contando para frente a partir do primeiro caractere, na cadeia de caracteres C para a qual a função de membro deve pesquisar.

str
A basic_string_view função para a qual o membro é pesquisar.

Return value

O índice do primeiro caractere da substring pesquisada quando bem-sucedida; caso contrário npos.

basic_string_view::find_last_not_of

Procura o último caractere que não é qualquer elemento de um especificado 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
A basic_string_view função para a qual o membro é pesquisar.

chVal
O valor do caractere para o qual a função de membro deve pesquisar.

offset
Índice no qual a pesquisa deve terminar.

ptr
A cadeia de caracteres C para a qual a função de membro deve pesquisar.

count
O número de caracteres, contando para frente a partir do primeiro caractere, em ptr.

Return value

O índice do primeiro caractere da substring pesquisada quando bem-sucedida; caso contrário string_view::npos.

basic_string_view::find_last_of

Procura o último caractere que corresponde a qualquer elemento de um arquivo 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
A basic_string_view função para a qual o membro é pesquisar.

chVal
O valor do caractere para o qual a função de membro deve pesquisar.

offset
Índice no qual a pesquisa deve terminar.

ptr
A cadeia de caracteres C para a qual a função de membro deve pesquisar.

count
O número de caracteres, contando para frente a partir do primeiro caractere, na cadeia de caracteres C para a qual a função de membro deve pesquisar.

Return value

O índice do último caractere da substring pesquisada quando bem-sucedida; caso contrário npos.

basic_string_view::front

Retorna a const_reference ao primeiro elemento.

constexpr const_reference front() const;

Return value

A const_reference ao primeiro elemento.

Remarks

Lança uma exceção se o basic_string_view estiver vazio.

basic_string_view::length

Retorna o número atual de elementos.

constexpr size_type length() const noexcept;

Remarks

A função de membro é a mesma que size.

basic_string_view::max_size

Devolve o número máximo de carateres que uma basic_string_view lata pode conter.

constexpr size_type max_size() const noexcept;

Return value

O número máximo de caracteres que a basic_string_view pode conter.

Remarks

Uma exceção de tipo length_error é lançada quando uma operação produz um basic_string_view com um comprimento maior que max_size().

basic_string_view::operator=

Atribui um basic_string_view objeto de cadeia de caracteres conversível a outro basic_string_viewarquivo .

constexpr basic_string_view& operator=(const basic_string_view&) noexcept = default;

Example

   string_view s = "Hello";
   string_view s2 = s;

basic_string_view::operator[]

Fornece um const_reference para o caractere com um índice especificado.

constexpr const_reference operator[](size_type offset) const;

Parameters

offset
O índice do elemento a ser referenciado.

Return value

A const_reference para o caractere na posição especificada pelo índice do parâmetro.

Remarks

O primeiro elemento tem um índice de zero, e os seguintes elementos são indexados consecutivamente pelos inteiros positivos, de modo que um basic_string_view de comprimento n tem um *n*th elemento indexado pelo número n-1.

operator[] é mais rápido do que a função at de membro para fornecer acesso de leitura aos elementos de um basic_string_viewarquivo .

operator[] não verifica se o índice passado como argumento é válido. Um índice inválido passado para operator[] resulta em comportamento indefinido.

A referência retornada pode ser invalidada se os dados da cadeia de caracteres subjacente forem modificados ou excluídos pelo objeto proprietário.

Ao compilar com _ITERATOR_DEBUG_LEVEL definido como 1 ou 2, ocorrerá um erro de tempo de execução se você tentar acessar um elemento fora dos limites do basic_string_view. For more information, see Checked Iterators.

basic_string_view::rbegin

Retorna um iterador de const para o primeiro elemento em um basic_string_viewinvertido.

constexpr const_reverse_iterator rbegin() const noexcept;

Return value

Retorna um iterador de acesso aleatório para o primeiro elemento em um invertido basic_string_view, abordando o que seria o último elemento no correspondente não revertido basic_string_view.

Remarks

rbegin é usado com um basic_string_view invertido, assim como begin é usado com um basic_string_view. rbegin pode ser usado para inicializar uma iteração para trás.

basic_string_view::remove_prefix

Move o ponteiro para frente pelo número especificado de elementos.

constexpr void remove_prefix(size_type n);

Remarks

Deixa os dados subjacentes inalterados. Move o basic_string_view ponteiro para frente por n elementos e define o membro de dados privados size como size - n.

basic_string_view::remove_suffix

Reduz o tamanho da exibição pelo número especificado de elementos começando pela parte de trás.

constexpr void remove_suffix(size_type n);

Remarks

Deixa os dados subjacentes e o ponteiro para eles inalterados. Define o membro de dados privados size como size - n.

basic_string_view::rend

Retorna um const iterador que aponta para um passado do último elemento em um arquivo basic_string_view.

constexpr reverse_iterator rend() const noexcept;

Return value

Um const iterador de acesso aleatório reverso que aponta para um passado do último elemento em um .basic_string_view

Remarks

rend é usado com um basic_string_view invertido, assim como end é usado com um basic_string_view. rend pode ser usado para testar se um iterador reverso atingiu o final de sua basic_string_view. O valor retornado por rend não deve ser desreferenciado.

basic_string_view::rfind

Procura uma basic_string_view substring in reverse que corresponda a uma sequência especificada de caracteres.

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
O valor do caractere para o qual a função de membro deve pesquisar.

offset
Índice no qual a pesquisa deve começar.

ptr
A cadeia de caracteres C para a qual a função de membro deve pesquisar.

count
O número de caracteres, contando para frente a partir do primeiro caractere, na cadeia de caracteres C para a qual a função de membro deve pesquisar.

str
A basic_string_view função para a qual o membro é pesquisar.

Return value

O índice do primeiro caractere da substring quando bem-sucedido; caso contrário npos.

basic_string_view::size

Devolve o número de elementos na basic_string_view.

constexpr size_type size() const noexcept;

Return value

O comprimento do basic_string_viewarquivo .

Remarks

A basic_string_view pode modificar seu comprimento, por exemplo, por remove_prefix e remove_suffix. Como isso não modifica os dados de cadeia de caracteres subjacentes, o tamanho de a basic_string_view não é necessariamente o tamanho dos dados subjacentes.

basic_string_view::starts_with

Verifique se a exibição de cadeia de caracteres começa com o prefixo especificado.

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
O prefixo de caractere único a ser procurado.

sv
Uma exibição de cadeia de caracteres que contém o prefixo a ser procurado.
Você pode passar um std::basic_string, que converte em uma exibição de cadeia de caracteres.

x
Cadeia de caracteres terminada em nulo que contém o prefixo a ser procurado.

Return value

true se a cadeia de caracteres começar com o prefixo especificado; false caso contrário.

Remarks

starts_with() é novo no C++20. Para usá-lo, especifique a opção de compilador /std:c++20 ou posterior.

Veja ends_with se uma cadeia de caracteres termina com um sufixo.

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

Retorna um basic_string_view que representa (no máximo) o número especificado de caracteres de uma posição especificada.

constexpr basic_string_view substr(size_type offset = 0, size_type count = npos) const;

Parameters

offset
Um índice que localiza o elemento na posição a partir da qual a cópia é feita, com um valor padrão de 0.

count
O número de caracteres a serem incluídos na substring, se estiverem presentes.

Return value

Um basic_string_view objeto que representa a subsequência especificada de elementos.

basic_string_view::swap

Troca dois basic_string_views, em outras palavras, os ponteiros para os dados de cadeia de caracteres subjacentes e os valores de tamanho.

constexpr void swap(basic_string_view& sv) noexcept;

Parameters

sv
A origem basic_string_view cujos valores de ponteiro e tamanho devem ser trocados com os do destino basic_string_view.

See also

<string_view>
segurança de threads na biblioteca padrão C++