Namespaces
Variants

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

Depuis fr.cppreference.net
 
 
 
std::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 la plus petite de size() et v.size(). La fonction compare les deux vues en appelant traits::compare(data(), v.data(), rlen), et renvoie 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)).

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)