Condividi tramite


Operatori <string_view>

Usare questi operatori per confrontare due string_view oggetti o un string_view oggetto stringa ( ad esempio std::string, o char*) per cui viene fornita una conversione implicita.

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

operator!=

Verifica se l'oggetto sul lato sinistro dell'operatore non è uguale all'oggetto sul lato destro.

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

Parametri

left
Qualsiasi tipo di stringa convertibile o oggetto di tipo basic_string_view da confrontare.

right
Qualsiasi tipo di stringa convertibile o oggetto di tipo basic_string_view da confrontare.

Valore restituito

true se l'oggetto a sinistra dell'operatore non è lessicograficamente uguale all'oggetto a destra; in caso contrario false, .

Osservazioni:

È necessario che esista una conversione implicita da convertible_string_type all'oggetto dall'altra string_view parte.

Il confronto si basa su un confronto lessicografico a coppie delle sequenze di caratteri. Se hanno lo stesso numero di elementi e gli elementi sono tutti uguali, i due oggetti sono uguali. In caso contrario, sono diseguali.

operator==

Verifica se l'oggetto sul lato sinistro dell'operatore è uguale all'oggetto sul lato destro.

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

Parametri

left
Qualsiasi tipo di stringa convertibile o oggetto di tipo basic_string_view da confrontare.

right
Qualsiasi tipo di stringa convertibile o oggetto di tipo basic_string_view da confrontare.

Valore restituito

true se l'oggetto a sinistra dell'operatore è lessicograficamente uguale all'oggetto a destra; in caso contrario false, .

Osservazioni:

È necessario che esista una conversione implicita da convertible_string_type all'oggetto dall'altra string_view parte.

Il confronto si basa su un confronto lessicografico a coppie delle sequenze di caratteri. Se hanno lo stesso numero di elementi e gli elementi sono tutti uguali, i due oggetti sono uguali.

operator<

Verifica se l'oggetto sul lato sinistro dell'operatore è minore dell'oggetto sul lato destro.

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

Parametri

left
Qualsiasi tipo di stringa convertibile o oggetto di tipo basic_string_view da confrontare.

right
Qualsiasi tipo di stringa convertibile o oggetto di tipo basic_string_view da confrontare.

Valore restituito

true se l'oggetto a sinistra dell'operatore è lessicograficamente minore dell'oggetto a destra; in caso contrario false, .

Osservazioni:

È necessario che esista una conversione implicita da convertible_string_type all'string_view dall'altra parte.

Il confronto si basa su un confronto lessicografico a coppie delle sequenze di caratteri. Quando viene rilevata la prima coppia di caratteri diversa, viene restituito il risultato di tale confronto. Se non vengono trovati caratteri diversi, ma una sequenza è più breve, la sequenza più breve è minore di quella più lunga. In altre parole, "gatto" è minore di "gatti".

Esempio

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

Verifica se l'oggetto sul lato sinistro dell'operatore è minore o uguale all'oggetto sul lato destro.

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

Parametri

left
Qualsiasi tipo di stringa convertibile o oggetto di tipo basic_string_view da confrontare.

right
Qualsiasi tipo di stringa convertibile o oggetto di tipo basic_string_view da confrontare.

Valore restituito

true se l'oggetto a sinistra dell'operatore è lessicograficamente minore o uguale all'oggetto a destra; in caso contrario false, .

Osservazioni:

Vedere operator<.

operator<<

Scrive un oggetto string_view in un flusso di output.

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

Parametri

Ostr
flusso di output in cui viene scritto.

Str
Il string_view da immettere in un flusso di output.

Valore restituito

flusso di output in cui viene scritto.

Osservazioni:

Usare questo operatore per inserire il contenuto di un string_view oggetto in un flusso di output, ad esempio usando std::cout.

operator>

Verifica se l'oggetto sul lato sinistro dell'operatore è maggiore dell'oggetto sul lato destro.

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

Parametri

left
Qualsiasi tipo di stringa convertibile o oggetto di tipo basic_string_view da confrontare.

right
Qualsiasi tipo di stringa convertibile o oggetto di tipo basic_string_view da confrontare.

Valore restituito

true se l'oggetto a sinistra dell'operatore è lessicograficamente maggiore dell'oggetto string_view a destra; in caso contrario false, .

Osservazioni:

Vedere operator<.

operator>=

Verifica se l'oggetto sul lato sinistro dell'operatore è maggiore o uguale all'oggetto sul lato destro.

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

Parametri

left
Qualsiasi tipo di stringa convertibile o oggetto di tipo basic_string_view da confrontare.

right
Qualsiasi tipo di stringa convertibile o oggetto di tipo basic_string_view da confrontare.

Valore restituito

true se l'oggetto a sinistra dell'operatore è lessicograficamente maggiore o uguale all'oggetto a destra; in caso contrario false, .

Osservazioni:

Vedere operator<.

operator"" sv (string_view letterale)

Costruisce un oggetto string_view da un valore letterale stringa. Richiede lo spazio dei nomi std::literals::string_view_literals.

Esempio

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 };

Requisiti

/std:c++17 o versioni successive.

Vedi anche

<string_view>