Namespaces
Variants

std::basic_string_view<CharT,Traits>:: compare

From cppreference.net
constexpr int compare ( basic_string_view v ) const noexcept ;
(1) (desde C++17)
constexpr int compare ( size_type pos1, size_type count1,
basic_string_view v ) const ;
(2) (desde C++17)
constexpr int compare ( size_type pos1, size_type count1, basic_string_view v,
size_type pos2, size_type count2 ) const ;
(3) (desde C++17)
constexpr int compare ( const CharT * s ) const ;
(4) (desde C++17)
constexpr int compare ( size_type pos1, size_type count1,
const CharT * s ) const ;
(5) (desde C++17)
constexpr int compare ( size_type pos1, size_type count1,
const CharT * s, size_type count2 ) const ;
(6) (desde C++17)

Compara dos secuencias de caracteres.

1) La longitud rlen de las secuencias a comparar es la menor entre size ( ) y v. size ( ) . La función compara las dos vistas llamando a traits :: compare ( data ( ) , v. data ( ) , rlen ) , y retorna un valor de acuerdo con la siguiente tabla:
Condición Resultado Valor de retorno
Traits::compare(data(), v.data(), rlen ) < 0 this es menor que v < 0
Traits::compare(data(), v.data(), rlen ) == 0 size() < v.size() this es menor que v < 0
size() == v.size() this es igual a v 0
size() > v.size() this es mayor que v > 0
Traits::compare(data(), v.data(), rlen ) > 0 this es mayor que v > 0
2) Equivalente a substr ( pos1, count1 ) . compare ( v ) .
3) Equivalente a substr ( pos1, count1 ) . compare ( v. substr ( pos2, count2 ) ) .
4) Equivalente a compare ( basic_string_view ( s ) ) .
5) Equivalente a substr ( pos1, count1 ) . compare ( basic_string_view ( s ) ) .
6) Equivalente a substr ( pos1, count1 ) . compare ( basic_string_view ( s, count2 ) ) .

Contenidos

Parámetros

v - vista a comparar
s - puntero a la cadena de caracteres a comparar
count1 - número de caracteres de esta vista a comparar
pos1 - posición del primer carácter en esta vista a comparar
count2 - número de caracteres de la vista dada a comparar
pos2 - posición del primer carácter de la vista dada a comparar

Valor de retorno

Valor negativo si esta vista es menor que la otra secuencia de caracteres, cero si ambas secuencias de caracteres son iguales, valor positivo si esta vista es mayor que la otra secuencia de caracteres.

Complejidad

1) Lineal en el número de caracteres comparados.

Ejemplo

#include <string_view>
int main()
{
    using std::operator""sv;
    static_assert("abc"sv.compare("abcd"sv) < 0);
    static_assert("abcd"sv.compare("abc"sv) > 0);
    static_assert("abc"sv.compare("abc"sv) == 0);
    static_assert(""sv.compare(""sv) == 0);
}

Véase también

compara dos cadenas
(función miembro pública de std::basic_string<CharT,Traits,Allocator> )
(C++17) (eliminado en C++20) (eliminado en C++20) (eliminado en C++20) (eliminado en C++20) (eliminado en C++20) (C++20)
compara lexicográficamente dos vistas de cadena
(plantilla de función)