Partager via


<string_view>, opérateurs

Utilisez ces opérateurs pour comparer deux string_view objets, ou un string_view autre objet de chaîne (par exemple std::string, ou char*) pour lequel une conversion implicite est fournie.

operator!=
operator>
operator>=
operator<
operator<<
operator<=
operator==
operator""sv

operator!=

Teste si l'objet situé à gauche de l'opérateur n'est pas égal à l'objet situé à droite.

template <class CharType, class Traits>
bool operator!=(
    const basic_string_view<CharType, Traits>& left,
    const basic_string_view<CharType, Traits>& right);

template <class CharType, class Traits>
bool operator!=(
    const basic_string_view<CharType, Traits>& left,
    convertible_string_type right);

template <class CharType, class Traits>
bool operator!=(
    convertible_string_type left,
    const basic_string_view<CharType, Traits>& right);

Paramètres

left
Tout type de chaîne convertible ou objet de type basic_string_view à comparer.

right
Tout type de chaîne convertible ou objet de type basic_string_view à comparer.

Valeur de retour

true si l’objet situé à gauche de l’opérateur n’est pas lexicographiquement égal à l’objet situé à droite ; sinon false.

Notes

Une conversion implicite doit exister de convertible_string_type à l’autre string_view côté.

La comparaison est basée sur une comparaison lexicographique par paire des séquences de caractères. S’ils ont le même nombre d’éléments et que les éléments sont tous égaux, les deux objets sont égaux. Sinon, ils sont inégaux.

operator==

Teste si l'objet situé à gauche de l'opérateur est égal à l'objet situé à droite.

template <class CharType, class Traits>
bool operator==(
    const basic_string_view<CharType, Traits>& left,
    const basic_string_view<CharType, Traits>& right);

template <class CharType, class Traits>
bool operator==(
    const basic_string_view<CharType, Traits>& left,
    convertible_string_type right);

template <class CharType, class Traits>
bool operator==(
    convertible_string_type left,
    const basic_string_view<CharType, Traits>& right);

Paramètres

left
Tout type de chaîne convertible ou objet de type basic_string_view à comparer.

right
Tout type de chaîne convertible ou objet de type basic_string_view à comparer.

Valeur de retour

true si l’objet situé à gauche de l’opérateur est lexicographiquement égal à l’objet situé à droite ; sinon false.

Notes

Une conversion implicite doit exister de convertible_string_type à l’autre string_view côté.

La comparaison est basée sur une comparaison lexicographique par paire des séquences de caractères. S’ils ont le même nombre d’éléments et que les éléments sont tous égaux, les deux objets sont égaux.

operator<

Teste si l'objet situé à gauche de l'opérateur est inférieur à l'objet situé à droite.

template <class CharType, class Traits>
bool operator<(
    const basic_string_view<CharType, Traits>& left,
    const basic_string_view<CharType, Traits>& right);

template <class CharType, class Traits>
bool operator<(
    const basic_string_view<CharType, Traits>& left,
    convertible_string_type right);

template <class CharType, class Traits>
bool operator<(
    convertible_string_type left,
    const basic_string_view<CharType, Traits>& right);

Paramètres

left
Tout type de chaîne convertible ou objet de type basic_string_view à comparer.

right
Tout type de chaîne convertible ou objet de type basic_string_view à comparer.

Valeur de retour

true si l’objet situé à gauche de l’opérateur est lexicographiquement inférieur à l’objet situé à droite ; sinon false.

Notes

Une conversion implicite doit exister de convertible_string_type au string_view de l’autre côté.

La comparaison est basée sur une comparaison lexicographique par paire des séquences de caractères. Lorsque la première paire inégale de caractères est rencontrée, le résultat de cette comparaison est retourné. Si aucun caractère inégaux n’est trouvé, mais qu’une séquence est plus courte, la séquence plus courte est inférieure à la plus longue. En d’autres termes, « chat » est inférieur à « chats ».

Exemple

#include <string>
#include <string_view>

using namespace std;

int main()
{
    string_view sv1 { "ABA" };
    string_view sv2{ "ABAC" };
    string_view sv3{ "ABAD" };
    string_view sv4{ "ABACE" };

    bool result = sv2 > sv1; // true
    result = sv3 > sv2; // true
    result = sv3 != sv1; // true
    result = sv4 < sv3; // true because `C` < `D`
}

operator<=

Teste si l'objet situé à gauche de l'opérateur est inférieur ou égal à l'objet situé à droite.

template <class CharType, class Traits>
bool operator<=(
    const basic_string_view<CharType, Traits>& left,
    const basic_string_view<CharType, Traits>& right);

template <class CharType, class Traits>
bool operator<=(
    const basic_string_view<CharType, Traits>& left,
    convertible_string_type right);

template <class CharType, class Traits>
bool operator<=(
    convertible_string_type left,
    const basic_string_view<CharType, Traits>& right);

Paramètres

left
Tout type de chaîne convertible ou objet de type basic_string_view à comparer.

right
Tout type de chaîne convertible ou objet de type basic_string_view à comparer.

Valeur de retour

true si l’objet situé à gauche de l’opérateur est lexicographiquement inférieur ou égal à l’objet situé à droite ; sinon false.

Notes

Consultez l’article operator<.

operator<<

Écrit un string_view flux de sortie.

template <class CharType, class Traits>
inline basic_ostream<CharType, Traits>& operator<<(
    basic_ostream<CharType, Traits>& Ostr, const basic_string_view<CharType, Traits> Str);

Paramètres

Ostr
un flux de sortie dans lequel il est écrit.

Str
La string_view à entrer dans un flux de sortie.

Valeur de retour

un flux de sortie dans lequel il est écrit.

Notes

Utilisez cet opérateur pour insérer le contenu d’un string_view flux de sortie, par exemple à l’aide std::coutde .

operator>

Teste si l'objet situé à gauche de l'opérateur est supérieur à l'objet situé à droite.

template <class CharType, class Traits>
bool operator>(
    const basic_string_view<CharType, Traits>& left,
    const basic_string_view<CharType, Traits>& right);

template <class CharType, class Traits>
bool operator>(
    const basic_string_view<CharType, Traits>& left,
    convertible_string_type right);

template <class CharType, class Traits>
bool operator>(
    convertible_string_type left,
    const basic_string_view<CharType, Traits>& right);

Paramètres

left
Tout type de chaîne convertible ou objet de type basic_string_view à comparer.

right
Tout type de chaîne convertible ou objet de type basic_string_view à comparer.

Valeur de retour

true si l’objet situé à gauche de l’opérateur est lexicographiquement supérieur à l’objet string_view situé à droite ; sinon false.

Notes

Consultez l’article operator<.

operator>=

Teste si l'objet situé à gauche de l'opérateur est supérieur ou égal à l'objet situé à droite.

template <class CharType, class Traits>
bool operator>=(
    const basic_string_view<CharType, Traits>& left,
    const basic_string_view<CharType, Traits>& right);

template <class CharType, class Traits>
bool operator>=(
    const basic_string_view<CharType, Traits>& left,
    convertible_string_type right);

template <class CharType, class Traits>
bool operator>=(
    convertible_string_type left,
    const basic_string_view<CharType, Traits>& right);

Paramètres

left
Tout type de chaîne convertible ou objet de type basic_string_view à comparer.

right
Tout type de chaîne convertible ou objet de type basic_string_view à comparer.

Valeur de retour

true si l’objet situé à gauche de l’opérateur est lexicographiquement supérieur ou égal à l’objet situé à droite ; sinon false.

Notes

Consultez l’article operator<.

operator"" sv (string_view littéral)

Construit un string_view littéral de chaîne. Nécessite un espace de noms std::literals::string_view_literals.

Exemple

using namespace std;
using namespace literals::string_view_literals;

    string_view sv{ "Hello"sv };
    wstring_view wsv{ L"Hello"sv };
    u16string_view sv16{ u"Hello"sv };
    u32string_view sv32{ U"Hello"sv };

Spécifications

/std:c++17 ou une version ultérieure.

Voir aussi

<string_view>