<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.