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.