std::basic_string_view<CharT,Traits>::compare
De es.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 de size() y v.size(). La función compara las dos vistas llamando a traits::compare(data(), v.data(), rlen), y devuelve 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)).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
Ejecutar este código
#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) |