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) | (depuis C++17) |
|
constexpr
int
compare
(
size_type pos1, size_type count1,
basic_string_view v ) const ; |
(2) | (depuis C++17) |
|
constexpr
int
compare
(
size_type pos1, size_type count1, basic_string_view v,
size_type pos2, size_type count2 ) const ; |
(3) | (depuis C++17) |
|
constexpr
int
compare
(
const
CharT
*
s
)
const
;
|
(4) | (depuis C++17) |
|
constexpr
int
compare
(
size_type pos1, size_type count1,
const CharT * s ) const ; |
(5) | (depuis C++17) |
|
constexpr
int
compare
(
size_type pos1, size_type count1,
const CharT * s, size_type count2 ) const ; |
(6) | (depuis C++17) |
Compare deux séquences de caractères.
1)
La longueur
rlen
des séquences à comparer est le plus petit de
size
(
)
et
v.
size
(
)
. La fonction compare les deux vues en appelant
traits
::
compare
(
data
(
)
, v.
data
(
)
, rlen
)
, et retourne une valeur selon le tableau suivant :
| Condition | Résultat | Valeur de retour | |
|---|---|---|---|
Traits::compare(data(), v.data(),
rlen
) < 0
|
this
est
inférieur
à
v
|
< 0 | |
Traits::compare(data(), v.data(),
rlen
) == 0
|
size() < v.size()
|
this
est
inférieur
à
v
|
< 0 |
size() == v.size()
|
this
est
égal
à
v
|
0 | |
size() > v.size()
|
this
est
supérieur
à
v
|
> 0 | |
Traits::compare(data(), v.data(),
rlen
) > 0
|
this
est
supérieur
à
v
|
> 0 | |
2)
Équivalent à
substr
(
pos1, count1
)
.
compare
(
v
)
.
3)
Équivalent à
substr
(
pos1, count1
)
.
compare
(
v.
substr
(
pos2, count2
)
)
.
4)
Équivalent à
compare
(
basic_string_view
(
s
)
)
.
5)
Équivalent à
substr
(
pos1, count1
)
.
compare
(
basic_string_view
(
s
)
)
.
6)
Équivalent à
substr
(
pos1, count1
)
.
compare
(
basic_string_view
(
s, count2
)
)
.
Table des matières |
Paramètres
| v | - | vue à comparer |
| s | - | pointeur vers la chaîne de caractères à comparer |
| count1 | - | nombre de caractères de cette vue à comparer |
| pos1 | - | position du premier caractère dans cette vue à comparer |
| count2 | - | nombre de caractères de la vue donnée à comparer |
| pos2 | - | position du premier caractère de la vue donnée à comparer |
Valeur de retour
Valeur négative si cette vue est inférieure à l'autre séquence de caractères, zéro si les deux séquences de caractères sont égales, valeur positive si cette vue est supérieure à l'autre séquence de caractères.
Complexité
1) Linéaire dans le nombre de caractères comparés.
Exemple
Exécuter ce code
#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); }
Voir aussi
|
compare deux chaînes
(fonction membre publique de
std::basic_string<CharT,Traits,Allocator>
)
|
|
|
(C++17)
(supprimé en C++20)
(supprimé en C++20)
(supprimé en C++20)
(supprimé en C++20)
(supprimé en C++20)
(C++20)
|
compare lexicographiquement deux vues de chaîne
(modèle de fonction) |