<string_view>, operatory

Użyj tych operatorów, aby porównać dwa string_view obiekty lub inny string_view obiekt ciągu (na przykład std::string, lub char*), dla którego podano niejawną konwersję.

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

operator!=

Sprawdza, czy obiekt po lewej stronie operatora nie jest równy obiektowi po prawej stronie.

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

Parametry

Lewej
Dowolny typ ciągu konwertowanego lub obiekt typu basic_string_view do porównania.

Prawo
Dowolny typ ciągu konwertowanego lub obiekt typu basic_string_view do porównania.

Wartość zwracana

true jeśli obiekt po lewej stronie operatora nie jest leksykograficznie równy obiektowi po prawej stronie; w przeciwnym razie false.

Uwagi

Niejawna konwersja musi istnieć z convertible_string_type do string_view drugiej strony.

Porównanie opiera się na parowania leksykograficznego porównania sekwencji znaków. Jeśli mają taką samą liczbę elementów, a wszystkie elementy są równe, dwa obiekty są równe. W przeciwnym razie są one nierówne.

operator==

Sprawdza, czy obiekt po lewej stronie operatora jest równy obiektowi po prawej stronie.

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

Parametry

Lewej
Dowolny typ ciągu konwertowanego lub obiekt typu basic_string_view do porównania.

Prawo
Dowolny typ ciągu konwertowanego lub obiekt typu basic_string_view do porównania.

Wartość zwracana

true jeśli obiekt po lewej stronie operatora jest leksykograficznie równy obiektowi po prawej stronie; w przeciwnym razie false.

Uwagi

Niejawna konwersja musi istnieć z convertible_string_type do string_view drugiej strony.

Porównanie opiera się na parowania leksykograficznego porównania sekwencji znaków. Jeśli mają taką samą liczbę elementów, a wszystkie elementy są równe, dwa obiekty są równe.

operator<

Sprawdza, czy obiekt po lewej stronie operatora jest mniejszy niż obiekt po prawej stronie.

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

Parametry

Lewej
Dowolny typ ciągu konwertowanego lub obiekt typu basic_string_view do porównania.

Prawo
Dowolny typ ciągu konwertowanego lub obiekt typu basic_string_view do porównania.

Wartość zwracana

true jeśli obiekt po lewej stronie operatora jest leksykograficznie mniejszy niż obiekt po prawej stronie; w przeciwnym razie false.

Uwagi

Niejawna konwersja musi istnieć z convertible_string_type do string_view po drugiej stronie.

Porównanie opiera się na parowania leksykograficznego porównania sekwencji znaków. Po napotkaniu pierwszej nierównej pary znaków zwracany jest wynik tego porównania. Jeśli nie znaleziono żadnych nierównych znaków, ale jedna sekwencja jest krótsza, krótsza sekwencja jest mniejsza niż dłuższa. Innymi słowy, "kot" jest mniejszy niż "koty".

Przykład

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

Sprawdza, czy obiekt po lewej stronie operatora jest mniejszy lub równy obiektowi po prawej stronie.

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

Parametry

Lewej
Dowolny typ ciągu konwertowanego lub obiekt typu basic_string_view do porównania.

Prawo
Dowolny typ ciągu konwertowanego lub obiekt typu basic_string_view do porównania.

Wartość zwracana

true jeśli obiekt po lewej stronie operatora jest leksykograficznie mniejszy lub równy obiektowi po prawej stronie; w przeciwnym razie false.

Uwagi

Zobacz: operator<.

operator<<

Zapisuje element string_view w strumieniu wyjściowym.

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

Parametry

Ostr
strumień wyjściowy zapisywany w.

Str
String_view, które mają zostać wprowadzone do strumienia wyjściowego.

Wartość zwracana

strumień wyjściowy zapisywany w.

Uwagi

Użyj tego operatora, aby wstawić zawartość string_view obiektu do strumienia wyjściowego, na przykład przy użyciu polecenia std::cout.

operator>

Sprawdza, czy obiekt po lewej stronie operatora jest większy niż obiekt po prawej stronie.

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

Parametry

Lewej
Dowolny typ ciągu konwertowanego lub obiekt typu basic_string_view do porównania.

Prawo
Dowolny typ ciągu konwertowanego lub obiekt typu basic_string_view do porównania.

Wartość zwracana

true jeśli obiekt po lewej stronie operatora jest leksykograficznie większy niż string_view obiekt po prawej stronie; w przeciwnym razie false.

Uwagi

Zobacz: operator<.

operator>=

Sprawdza, czy obiekt po lewej stronie operatora jest większy lub równy obiektowi po prawej stronie.

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

Parametry

left
Dowolny typ ciągu konwertowanego lub obiekt typu basic_string_view do porównania.

right
Dowolny typ ciągu konwertowanego lub obiekt typu basic_string_view do porównania.

Wartość zwracana

true jeśli obiekt po lewej stronie operatora jest leksykograficznie większy lub równy obiektowi po prawej stronie; w przeciwnym razie false.

Uwagi

Zobacz: operator<.

operator"" sv (string_view literał)

Tworzy element string_view z literału ciągu. Wymaga przestrzeni nazw std::literals::string_view_literals.

Przykład

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

Wymagania

/std:c++17 lub nowszy.

Zobacz też

<string_view>