<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ż
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla