Dela via


<string_view> operatörer

Använd dessa operatorer för att jämföra två string_view objekt, eller ett string_view och något annat strängobjekt (till exempel std::string, eller char*) som en implicit konvertering tillhandahålls för.

operator!=

Testar om objektet till vänster om operatorn inte är lika med objektet till höger.

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

Parameterar

left
Alla konvertibla strängtyper eller objekt av typen basic_string_view som ska jämföras.

right
Alla konvertibla strängtyper eller objekt av typen basic_string_view som ska jämföras.

Returvärde

true om objektet till vänster om operatorn inte är lexikalt lika med objektet på höger sida; annars false.

Anmärkningar

En implicit konvertering måste finnas från convertible_string_type till string_view på andra sidan.

Jämförelsen baseras på en parvis lexikal jämförelse av teckensekvenserna. Om de har samma antal element och alla element är lika med, är de två objekten lika. Annars är de ojämlika.

operator==

Testar om objektet till vänster om operatorn är lika med objektet till höger.

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

Parameterar

left
Alla konvertibla strängtyper eller objekt av typen basic_string_view som ska jämföras.

right
Alla konvertibla strängtyper eller objekt av typen basic_string_view som ska jämföras.

Returvärde

true om objektet till vänster om operatorn är lexikografiska lika med objektet på höger sida, annars false.

Anmärkningar

En implicit konvertering måste finnas från convertible_string_type till string_view på andra sidan.

Jämförelsen baseras på en parvis lexikal jämförelse av teckensekvenserna. Om de har samma antal element och alla element är lika med, är de två objekten lika.

operator<

Testar om objektet till vänster om operatorn är mindre än objektet till höger.

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

Parameterar

left
Alla konvertibla strängtyper eller objekt av typen basic_string_view som ska jämföras.

right
Alla konvertibla strängtyper eller objekt av typen basic_string_view som ska jämföras.

Returvärde

true om objektet till vänster om operatorn är lexicographically mindre än objektet på höger sida, annars false.

Anmärkningar

En implicit konvertering måste finnas från convertible_string_type till string_view på andra sidan.

Jämförelsen baseras på en parvis lexikal jämförelse av teckensekvenserna. När det första ojämlika teckenparet påträffas returneras resultatet av den jämförelsen. Om inga olika tecken hittas, men en sekvens är kortare, är den kortare sekvensen mindre än den längre. Med andra ord är "katt" mindre än "katter".

Exempel

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

Testar om objektet till vänster om operatorn är mindre än eller lika med objektet till höger.

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

Parameterar

left
Alla konvertibla strängtyper eller objekt av typen basic_string_view som ska jämföras.

right
Alla konvertibla strängtyper eller objekt av typen basic_string_view som ska jämföras.

Returvärde

true om objektet till vänster om operatorn är lexikografiska mindre än eller lika med objektet på höger sida, annars false.

Anmärkningar

Se även operator<.

operator<<

Skriver en string_view till en utdataström.

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

Parameterar

Ostr
en utdataström som skrivs till.

Str
Som string_view ska anges i en utdataström.

Returvärde

en utdataström som skrivs till.

Anmärkningar

Använd den här operatorn för att infoga innehållet i en string_view i en utdataström, till exempel med hjälp av std::cout.

operator>

Testar om objektet till vänster om operatorn är större än objektet till höger.

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

Parameterar

left
Alla konvertibla strängtyper eller objekt av typen basic_string_view som ska jämföras.

right
Alla konvertibla strängtyper eller objekt av typen basic_string_view som ska jämföras.

Returvärde

true om objektet till vänster om operatorn är lexicographically större än string_view objektet på höger sida, annars false.

Anmärkningar

Se även operator<.

operator>=

Testar om objektet till vänster om operatorn är större än eller lika med objektet till höger.

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

Parameterar

left
Alla konvertibla strängtyper eller objekt av typen basic_string_view som ska jämföras.

right
Alla konvertibla strängtyper eller objekt av typen basic_string_view som ska jämföras.

Returvärde

true om objektet till vänster om operatorn är lexicographically större än eller lika med objektet på höger sida; annars false.

Anmärkningar

Se även operator<.

operator"" sv (string_view literal)

Konstruerar en string_view från en strängliteral. Kräver namnområdet std::literals::string_view_literals.

Exempel

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

Kravspecifikation

/std:c++17 eller senare.

Se även

<string_view>