Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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_viewwstring_viewu16string_viewu32string_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.
-
string_viewpara elementos do tipochar -
wstring_view, parawchar_t -
u16string_viewparachar16_t -
u32string_viewparachar32_t.
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_viewfor inferiorstrvouptr - Zero se as duas sequências de caracteres forem iguais
- Um valor positivo se for
basic_string_viewsuperior oustrvptr
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.