C++/string view
外觀
< C++
標準模板庫頭文件 <string_view>是C++17提出的。
由於std::string_view的對象只包含2個指針,所以相當於值對象。與const std::string&相比,std::string_view避免了潛在可能的對象構造。例如: std::string_view v1("hello");
類模板basic_string_view
[編輯]只讀的字符串視圖。string_view的成員函數即對外接口與 string 相類似,但只包含讀取字符串內容的部分。
- string_view::substr()的返回值類型是string_view,不產生新的字符串,不會進行內存分配。
- string::substr()的返回值類型是string,產生新的字符串,會進行內存分配。
- string_view字面量的後綴是 sv。(string字面量的後綴是 s)可處理包含\0的字符串。自適應各種CHAR_T
- std::string_view std::basic_string_view<char>
- std::u8string_view std::basic_string_view<char8_t> (C++20)
- std::u16string_view std::basic_string_view<char16_t>
- std::u32string_view std::basic_string_view<char32_t>
- std::wstring_view std::basic_string_view<wchar_t>
- std::hash<std::string_view> string_view 的散列支持
- std::hash<std::wstring_view>
- std::hash<std::u8string_view>
- std::hash<std::u16string_view>
- std::hash<std::u32string_view>
函數 以字典序比較兩個字符串視圖
- operator==
- operator!=
- operator<
- operator>
- operator<=
- operator>=
- operator<=> (C++20)
函數模板
- operator<< 進行字符串視圖的流輸出
- size
- length
- max_size 可包含的字符的最多數量
- empty
- operator[]
- at
- front
- back
- remove_prefix 參數為被刪掉的字符個數
- remove_suffix 參數為被刪掉的字符個數
- swap
- copy
- substr
- compare
- starts_with
- ends_with
- contains
- find
- rfind
- find_first_of
- find_last_of
- find_first_not_of
- find_last_not_of
- data