Namespaces
Variants

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

From cppreference.net
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

#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)