<string_view> betriebspersonal

Verwenden Sie diese Operatoren, um zwei string_view Objekte oder ein und ein string_view anderes Zeichenfolgenobjekt (z std::string. B. oder char*) zu vergleichen, für das eine implizite Konvertierung bereitgestellt wird.

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

operator!=

Testet, ob das -Objekt links vom Operator ungleich dem -Objekt rechts vom Operator ist.

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

Parameter

left
Jeder konvertierbare Zeichenfolgentyp oder ein Objekt vom Typ basic_string_view , das verglichen werden soll.

right
Jeder konvertierbare Zeichenfolgentyp oder ein Objekt vom Typ basic_string_view , das verglichen werden soll.

Rückgabewert

true wenn das Objekt auf der linken Seite des Operators nicht lexikalisch gleich dem Objekt auf der rechten Seite ist; andernfalls false.

Hinweise

Eine implizite Konvertierung muss von convertible_string_type auf die string_view andere Seite vorhanden sein.

Der Vergleich basiert auf einem lexikografischen Paarvergleich der Zeichensequenzen. Wenn sie dieselbe Anzahl von Elementen haben und die Elemente alle gleich sind, sind die beiden Objekte gleich. Andernfalls sind sie ungleich.

operator==

Testet, ob das -Objekt links vom Operator gleich dem -Objekt rechts vom Operator ist.

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

Parameter

left
Jeder konvertierbare Zeichenfolgentyp oder ein Objekt vom Typ basic_string_view , das verglichen werden soll.

right
Jeder konvertierbare Zeichenfolgentyp oder ein Objekt vom Typ basic_string_view , das verglichen werden soll.

Rückgabewert

true wenn das Objekt auf der linken Seite des Operators lexikalisch gleich dem Objekt auf der rechten Seite ist; andernfalls false.

Hinweise

Eine implizite Konvertierung muss von convertible_string_type auf die string_view andere Seite vorhanden sein.

Der Vergleich basiert auf einem lexikografischen Paarvergleich der Zeichensequenzen. Wenn sie dieselbe Anzahl von Elementen haben und die Elemente alle gleich sind, sind die beiden Objekte gleich.

operator<

Testet, ob das -Objekt links vom Operator kleiner als das -Objekt auf der rechten Seite ist.

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

Parameter

left
Jeder konvertierbare Zeichenfolgentyp oder ein Objekt vom Typ basic_string_view , das verglichen werden soll.

right
Jeder konvertierbare Zeichenfolgentyp oder ein Objekt vom Typ basic_string_view , das verglichen werden soll.

Rückgabewert

true wenn das Objekt auf der linken Seite des Operators lexikalisch kleiner als das Objekt auf der rechten Seite ist; andernfalls false.

Hinweise

Eine implizite Konvertierung muss von convertible_string_type auf die string_view auf der anderen Seite vorhanden sein.

Der Vergleich basiert auf einem lexikografischen Paarvergleich der Zeichensequenzen. Wenn das erste ungleiche Zeichenpaar gefunden wird, wird das Ergebnis dieses Vergleichs zurückgegeben. Wenn keine ungleichen Zeichen gefunden werden, aber eine Sequenz kürzer ist, ist die kürzere Sequenz kleiner als die längere. Anders ausgedrückt: "Katze" ist kleiner als "Katzen".

Beispiel

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

Testet, ob das -Objekt links vom Operator kleiner oder gleich dem -Objekt auf der rechten Seite ist.

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

Parameter

left
Jeder konvertierbare Zeichenfolgentyp oder ein Objekt vom Typ basic_string_view , das verglichen werden soll.

right
Jeder konvertierbare Zeichenfolgentyp oder ein Objekt vom Typ basic_string_view , das verglichen werden soll.

Rückgabewert

true wenn das Objekt auf der linken Seite des Operators lexikalisch kleiner oder gleich dem Objekt auf der rechten Seite ist; andernfalls false.

Hinweise

Siehe operator<.

operator<<

Schreibt einen string_view in einen Ausgabedatenstrom.

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

Parameter

Ostr
ein Ausgabedatenstrom, in den geschrieben wird.

Str
Die string_view, die in einen Ausgabedatenstrom eingegeben werden sollen.

Rückgabewert

ein Ausgabedatenstrom, in den geschrieben wird.

Hinweise

Verwenden Sie diesen Operator, um den Inhalt eines Elements string_view in einen Ausgabedatenstrom einzufügen, z. B. mithilfe von std::cout.

operator>

Testet, ob das -Objekt links vom Operator größer als das -Objekt auf der rechten Seite ist.

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

Parameter

left
Jeder konvertierbare Zeichenfolgentyp oder ein Objekt vom Typ basic_string_view , das verglichen werden soll.

right
Jeder konvertierbare Zeichenfolgentyp oder ein Objekt vom Typ basic_string_view , das verglichen werden soll.

Rückgabewert

true wenn das Objekt auf der linken Seite des Operators lexikalisch größer als das string_view Objekt auf der rechten Seite ist; andernfalls false.

Hinweise

Siehe operator<.

operator>=

Testet, ob das -Objekt links vom Operator größer oder gleich dem -Objekt auf der rechten Seite ist.

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

Parameter

left
Jeder konvertierbare Zeichenfolgentyp oder ein Objekt vom Typ basic_string_view , das verglichen werden soll.

right
Jeder konvertierbare Zeichenfolgentyp oder ein Objekt vom Typ basic_string_view , das verglichen werden soll.

Rückgabewert

true wenn das Objekt auf der linken Seite des Operators lexikalisch größer oder gleich dem Objekt auf der rechten Seite ist; andernfalls false.

Hinweise

Siehe operator<.

operator"" sv (string_view Literal)

Erstellt ein string_view Zeichenfolgenliteral. Erfordert Namespace std::literals::string_view_literals.

Beispiel

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

Anforderungen

/std:c++17 oder höher.

Siehe auch

<string_view>