std::basic_string_view<CharT,Traits>:: compare
From cppreference.net
<
cpp
|
string
|
basic string view
|
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
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) |