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.
Use esses operadores para comparar dois string_view objetos, ou um string_view e algum outro objeto de cadeia de caracteres (por exemplo std::string, ou char*) para o qual uma conversão implícita é fornecida.
operator!=
Testa se o objeto no lado esquerdo do operador não é igual ao objeto no lado direito.
template <class CharType, class Traits>
bool operator!=(
const basic_string_view<CharType, Traits>& left,
const basic_string_view<CharType, Traits>& right);
template <class CharType, class Traits>
bool operator!=(
const basic_string_view<CharType, Traits>& left,
convertible_string_type right);
template <class CharType, class Traits>
bool operator!=(
convertible_string_type left,
const basic_string_view<CharType, Traits>& right);
Parâmetros
left
Qualquer tipo de cadeia de caracteres conversível ou um objeto do tipo basic_string_view a ser comparado.
right
Qualquer tipo de cadeia de caracteres conversível ou um objeto do tipo basic_string_view a ser comparado.
Valor de retorno
true se o objeto do lado esquerdo do operador não for lexicograficamente igual ao objeto do lado direito; caso contrário false.
Observações
Deve existir uma conversão implícita do convertible_string_type para o string_view outro lado.
A comparação é baseada em uma comparação lexicográfica par das sequências de caracteres. Se eles têm o mesmo número de elementos e os elementos são todos iguais, os dois objetos são iguais. Caso contrário, são desiguais.
operator==
Testa se o objeto no lado esquerdo do operador é igual ao objeto no lado direito.
template <class CharType, class Traits>
bool operator==(
const basic_string_view<CharType, Traits>& left,
const basic_string_view<CharType, Traits>& right);
template <class CharType, class Traits>
bool operator==(
const basic_string_view<CharType, Traits>& left,
convertible_string_type right);
template <class CharType, class Traits>
bool operator==(
convertible_string_type left,
const basic_string_view<CharType, Traits>& right);
Parâmetros
left
Qualquer tipo de cadeia de caracteres conversível ou um objeto do tipo basic_string_view a ser comparado.
right
Qualquer tipo de cadeia de caracteres conversível ou um objeto do tipo basic_string_view a ser comparado.
Valor de retorno
true se o objeto do lado esquerdo do operador for lexicograficamente igual ao objeto do lado direito; caso contrário false.
Observações
Deve existir uma conversão implícita do convertible_string_type para o string_view outro lado.
A comparação é baseada em uma comparação lexicográfica par das sequências de caracteres. Se eles têm o mesmo número de elementos e os elementos são todos iguais, os dois objetos são iguais.
operator<
Testa se o objeto no lado esquerdo do operador é menor do que o objeto no lado direito.
template <class CharType, class Traits>
bool operator<(
const basic_string_view<CharType, Traits>& left,
const basic_string_view<CharType, Traits>& right);
template <class CharType, class Traits>
bool operator<(
const basic_string_view<CharType, Traits>& left,
convertible_string_type right);
template <class CharType, class Traits>
bool operator<(
convertible_string_type left,
const basic_string_view<CharType, Traits>& right);
Parâmetros
left
Qualquer tipo de cadeia de caracteres conversível ou um objeto do tipo basic_string_view a ser comparado.
right
Qualquer tipo de cadeia de caracteres conversível ou um objeto do tipo basic_string_view a ser comparado.
Valor de retorno
true se o objeto do lado esquerdo do operador for lexicograficamente menor do que o objeto do lado direito; caso contrário false.
Observações
Deve existir uma conversão implícita do convertible_string_type para o string_view outro lado.
A comparação é baseada em uma comparação lexicográfica par das sequências de caracteres. Quando o primeiro par desigual de caracteres é encontrado, o resultado dessa comparação é retornado. Se não forem encontrados caracteres desiguais, mas uma sequência for mais curta, a sequência mais curta será menor do que a mais longa. Por outras palavras, "gato" é menos do que "gatos".
Exemplo
#include <string>
#include <string_view>
using namespace std;
int main()
{
string_view sv1 { "ABA" };
string_view sv2{ "ABAC" };
string_view sv3{ "ABAD" };
string_view sv4{ "ABACE" };
bool result = sv2 > sv1; // true
result = sv3 > sv2; // true
result = sv3 != sv1; // true
result = sv4 < sv3; // true because `C` < `D`
}
operator<=
Testa se o objeto no lado esquerdo do operador é menor ou igual ao objeto no lado direito.
template <class CharType, class Traits>
bool operator<=(
const basic_string_view<CharType, Traits>& left,
const basic_string_view<CharType, Traits>& right);
template <class CharType, class Traits>
bool operator<=(
const basic_string_view<CharType, Traits>& left,
convertible_string_type right);
template <class CharType, class Traits>
bool operator<=(
convertible_string_type left,
const basic_string_view<CharType, Traits>& right);
Parâmetros
left
Qualquer tipo de cadeia de caracteres conversível ou um objeto do tipo basic_string_view a ser comparado.
right
Qualquer tipo de cadeia de caracteres conversível ou um objeto do tipo basic_string_view a ser comparado.
Valor de retorno
true se o objeto do lado esquerdo do operador for lexicograficamente menor ou igual ao objeto do lado direito; caso contrário false.
Observações
Consulte operator<.
operator<<
Grava um string_view em um fluxo de saída.
template <class CharType, class Traits>
inline basic_ostream<CharType, Traits>& operator<<(
basic_ostream<CharType, Traits>& Ostr, const basic_string_view<CharType, Traits> Str);
Parâmetros
Ostr
um fluxo de saída sendo gravado.
Str
O string_view a ser inserido em um fluxo de saída.
Valor de retorno
um fluxo de saída sendo gravado.
Observações
Use este operador para inserir o conteúdo de a string_view em um fluxo de saída, por exemplo, usando std::cout.
operator>
Testa se o objeto no lado esquerdo do operador é maior do que o objeto no lado direito.
template <class CharType, class Traits>
bool operator>(
const basic_string_view<CharType, Traits>& left,
const basic_string_view<CharType, Traits>& right);
template <class CharType, class Traits>
bool operator>(
const basic_string_view<CharType, Traits>& left,
convertible_string_type right);
template <class CharType, class Traits>
bool operator>(
convertible_string_type left,
const basic_string_view<CharType, Traits>& right);
Parâmetros
left
Qualquer tipo de cadeia de caracteres conversível ou um objeto do tipo basic_string_view a ser comparado.
right
Qualquer tipo de cadeia de caracteres conversível ou um objeto do tipo basic_string_view a ser comparado.
Valor de retorno
truese o objeto do lado esquerdo do operador for lexicograficamente maior do que o string_view objeto do lado direito;false
Observações
Consulte operator<.
operator>=
Testa se o objeto no lado esquerdo do operador é maior ou igual ao objeto no lado direito.
template <class CharType, class Traits>
bool operator>=(
const basic_string_view<CharType, Traits>& left,
const basic_string_view<CharType, Traits>& right);
template <class CharType, class Traits>
bool operator>=(
const basic_string_view<CharType, Traits>& left,
convertible_string_type right);
template <class CharType, class Traits>
bool operator>=(
convertible_string_type left,
const basic_string_view<CharType, Traits>& right);
Parâmetros
left
Qualquer tipo de cadeia de caracteres conversível ou um objeto do tipo basic_string_view a ser comparado.
right
Qualquer tipo de cadeia de caracteres conversível ou um objeto do tipo basic_string_view a ser comparado.
Valor de retorno
true se o objeto do lado esquerdo do operador for lexicograficamente maior ou igual ao objeto do lado direito; caso contrário false.
Observações
Consulte operator<.
operator"" sv
string_view(literal)
Constrói um string_view literal a partir de uma cadeia de caracteres. Requer namespace std::literals::string_view_literals.
Exemplo
using namespace std;
using namespace literals::string_view_literals;
string_view sv{ "Hello"sv };
wstring_view wsv{ L"Hello"sv };
u16string_view sv16{ u"Hello"sv };
u32string_view sv32{ U"Hello"sv };
Requerimentos
/std:c++17 ou mais tarde.