<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"" sv
(string_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
或更新版本。