Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Pomocí těchto operátorů můžete porovnat dva string_view objekty nebo string_view jiný řetězcový objekt (například std::string) nebo char*jiný řetězcový objekt, pro který je poskytován implicitní převod.
operator!=
Testuje, zda objekt na levé straně operátoru není roven objektu na pravé straně.
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
Jakýkoli typ konvertibilního řetězce nebo objekt typu basic_string_view , který se má porovnat.
right
Jakýkoli typ konvertibilního řetězce nebo objekt typu basic_string_view , který se má porovnat.
Návratová hodnota
true pokud objekt na levé straně operátoru není lexikálně roven objektu na pravé straně; jinak false.
Poznámky
Implicitní převod musí existovat z convertible_string_type na string_view druhou stranu.
Porovnání vychází z párového lexikografického porovnání sekvencí znaků. Pokud mají stejný počet prvků a všechny prvky jsou stejné, jsou tyto dva objekty stejné. Jinak jsou nerovné.
operator==
Testuje, zda je objekt na levé straně operátoru roven objektu na pravé straně.
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
Jakýkoli typ konvertibilního řetězce nebo objekt typu basic_string_view , který se má porovnat.
right
Jakýkoli typ konvertibilního řetězce nebo objekt typu basic_string_view , který se má porovnat.
Návratová hodnota
true je-li objekt na levé straně operátoru lexicicky roven objektu na pravé straně; jinak false.
Poznámky
Implicitní převod musí existovat z convertible_string_type na string_view druhou stranu.
Porovnání vychází z párového lexikografického porovnání sekvencí znaků. Pokud mají stejný počet prvků a všechny prvky jsou stejné, jsou tyto dva objekty stejné.
operator<
Testuje, zda je objekt na levé straně operátoru menší než objekt na pravé straně.
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
Jakýkoli typ konvertibilního řetězce nebo objekt typu basic_string_view , který se má porovnat.
right
Jakýkoli typ konvertibilního řetězce nebo objekt typu basic_string_view , který se má porovnat.
Návratová hodnota
true je-li objekt na levé straně operátoru lexicicky menší než objekt na pravé straně; jinak false.
Poznámky
Implicitní převod musí existovat z convertible_string_type na string_view druhou stranu.
Porovnání vychází z párového lexikografického porovnání sekvencí znaků. Při výskytu prvního nerovného páru znaků se vrátí výsledek tohoto porovnání. Pokud nejsou nalezeny žádné nerovné znaky, ale jedna sekvence je kratší, kratší sekvence je menší než delší. Jinými slovy, "kočka" je menší než "kočky".
Příklad
#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<=
Testuje, zda je objekt na levé straně operátoru menší nebo roven objektu na pravé straně.
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
Jakýkoli typ konvertibilního řetězce nebo objekt typu basic_string_view , který se má porovnat.
right
Jakýkoli typ konvertibilního řetězce nebo objekt typu basic_string_view , který se má porovnat.
Návratová hodnota
true je-li objekt na levé straně operátoru lexikálně menší nebo roven objektu na pravé straně; jinak false.
Poznámky
Viz třída operator<.
operator<<
Zapíše do string_view výstupního datového proudu.
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
výstupní datový proud, do kterého se zapisuje.
Str
Do string_view výstupního datového proudu se má zadat.
Návratová hodnota
výstupní datový proud, do kterého se zapisuje.
Poznámky
Tento operátor slouží k vložení obsahu do výstupního datového string_view proudu, například pomocí std::cout.
operator>
Testuje, zda je objekt na levé straně operátoru větší než objekt na pravé straně.
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
Jakýkoli typ konvertibilního řetězce nebo objekt typu basic_string_view , který se má porovnat.
right
Jakýkoli typ konvertibilního řetězce nebo objekt typu basic_string_view , který se má porovnat.
Návratová hodnota
true je-li objekt na levé straně operátoru lexicicky větší než string_view objekt na pravé straně; jinak false.
Poznámky
Viz třída operator<.
operator>=
Testuje, zda je objekt na levé straně operátoru větší nebo roven objektu na pravé straně.
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
Jakýkoli typ konvertibilního řetězce nebo objekt typu basic_string_view , který se má porovnat.
right
Jakýkoli typ konvertibilního řetězce nebo objekt typu basic_string_view , který se má porovnat.
Návratová hodnota
true je-li objekt na levé straně operátoru lexikálně větší nebo roven objektu na pravé straně; jinak false.
Poznámky
Viz třída operator<.
operator"" sv (string_view literál)
Vytvoří řetězcový string_view literál. Vyžaduje obor názvů std::literals::string_view_literals.
Příklad
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 };
Požadavky
/std:c++17 nebo novější.