分享方式:


<string_view> 運算子

使用這些運算符來比較兩個 string_view 物件,或是 提供隱含轉換的 一 string_view 些其他字串物件(例如 std::string, 或 char*)。

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

operator!=

測試運算子左邊的 物件是否不等於右邊的 物件。

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

參數

left
要比較之型 basic_string_view 別的任何可轉換字串類型或物件。

right
要比較之型 basic_string_view 別的任何可轉換字串類型或物件。

傳回值

true 如果運算子左邊的物件不等於右邊的物件,則為 ;否則 false為 。

備註

隱含轉換必須存在於convertible_string_typestring_view另一端的 。

比較是以字元序列的成對語彙比較為基礎。 如果元素數目相同,且元素全部相等,則兩個物件相等。 否則,它們不相等。

operator==

測試運算子左邊的 物件是否等於右邊的 物件。

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

參數

left
要比較之型 basic_string_view 別的任何可轉換字串類型或物件。

right
要比較之型 basic_string_view 別的任何可轉換字串類型或物件。

傳回值

true 如果運算子左邊的物件與右邊的物件相等,則為 ;否則 false為 。

備註

隱含轉換必須存在於convertible_string_typestring_view另一端的 。

比較是以字元序列的成對語彙比較為基礎。 如果元素數目相同,且元素全部相等,則兩個物件相等。

operator<

測試運算子左邊的 物件是否小於右邊的 物件。

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

參數

left
要比較之型 basic_string_view 別的任何可轉換字串類型或物件。

right
要比較之型 basic_string_view 別的任何可轉換字串類型或物件。

傳回值

true 如果運算子左邊的對象在語匯上小於右邊的物件,則為 ;否則 false為 。

備註

隱含轉換必須存在於 另一端的convertible_string_type 到string_view。

比較是以字元序列的成對語彙比較為基礎。 遇到第一個不相等的字元組時,會傳回該比較的結果。 如果找不到不相等字元,但一個序列較短,則較短的序列小於較長的序列。 換句話說,“cat” 小於 “cats”。

範例

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

測試運算子左邊的 物件是否小於或等於右邊的 物件。

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

參數

left
要比較之型 basic_string_view 別的任何可轉換字串類型或物件。

right
要比較之型 basic_string_view 別的任何可轉換字串類型或物件。

傳回值

true 如果運算子左邊的物件在語匯上小於或等於右邊的物件,則為 ;否則 false為 。

備註

請參閱 operator<

operator<<

string_view 寫入輸出數據流。

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

參數

Ostr
要寫入的輸出數據流。

Str
要輸入輸出數據流的string_view。

傳回值

要寫入的輸出數據流。

備註

使用此運算子會插入 string_view 輸出資料流,例如使用 std::cout

operator>

測試運算子左邊的 物件是否大於右邊的 物件。

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

參數

left
要比較之型 basic_string_view 別的任何可轉換字串類型或物件。

right
要比較之型 basic_string_view 別的任何可轉換字串類型或物件。

傳回值

true 如果運算子左邊的物件在語彙上大於右邊的物件, string_view 則為 ,否則 false為 。

備註

請參閱 operator<

operator>=

測試運算子左邊的 物件是否大於或等於右邊的 物件。

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

參數

left
要比較之型 basic_string_view 別的任何可轉換字串類型或物件。

right
要比較之型 basic_string_view 別的任何可轉換字串類型或物件。

傳回值

true 如果運算子左邊的物件在語匯上大於或等於右邊的物件,則為 ;否則 false為 。

備註

請參閱 operator<

operator"" svstring_view 常值)

string_view從字串常值建構 。 需要命名空間 std::literals::string_view_literals

範例

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

需求

/std:c++17 或更新版本。

另請參閱

<string_view>