From cppreference.com
This header is part of the
library.
Includes
(C++20)
support
Classes
(C++17)
read-only string view
(class template)
(C++17)std::basic_string_view<char>
(C++20)std::basic_string_view<char8_t>
(C++17)std::basic_string_view<char16_t>
(C++17)std::basic_string_view<char32_t>
(C++17)std::basic_string_view<wchar_t>
(C++17)(C++17)(C++20)(C++17)(C++17)
hash support for string views
(class template specialization)
Forward declarations Defined in header
(C++11)
hash function object
(class template)
Functions
operator==operator!=operator<operator>operator<=operator>=operator<=>
(C++17)(removed in C++20)(removed in C++20)(removed in C++20)(removed in C++20)(removed in C++20)(C++20)
lexicographically compares two string views
(function template)
(C++17)
performs stream output on string views
(function template)
swaps the values of two objects
(function template)
Range access
(C++11)(C++14)
returns an iterator to the beginning of a container or array
(function template)
(C++11)(C++14)
returns an iterator to the end of a container or array
(function template)
(C++14)
returns a reverse iterator to the beginning of a container or array
(function template)
(C++14)
returns a reverse end iterator for a container or array
(function template)
(C++17)(C++20)
returns the size of a container or array
(function template)
(C++17)
checks whether the container is empty
(function template)
(C++17)
obtains the pointer to the underlying array
(function template)
Literals Defined in inline namespace std::literals::string_view_literals
(C++17)
creates a string view of a character array literal
(function)
Synopsis
// mostly freestanding#include<compare>namespacestd{// class template basic_string_viewtemplate<classCharT,classTraits=char_traits<CharT>>classbasic_string_view;// partially freestandingtemplate<classCharT,classTraits>constexprboolranges::enable_view<basic_string_view<CharT,Traits>>=true;template<classCharT,classTraits>constexprboolranges::enable_borrowed_range<basic_string_view<CharT,Traits>>=true;// non-member comparison functionstemplate<classCharT,classTraits>constexprbooloperator==(basic_string_view<CharT,Traits>x,type_identity_t<basic_string_view<CharT,Traits>>y)noexcept;template<classCharT,classTraits>constexpr/* see description */operator<=>(basic_string_view<CharT,Traits>x,type_identity_t<basic_string_view<CharT,Traits>>y)noexcept;// inserters and extractorstemplate<classCharT,classTraits>basic_ostream<CharT,Traits>&operator<<(basic_ostream<CharT,Traits>&os,basic_string_view<CharT,Traits>str);// hosted// basic_string_view typedef-namesusingstring_view=basic_string_view<char>;usingu8string_view=basic_string_view<char8_t>;usingu16string_view=basic_string_view<char16_t>;usingu32string_view=basic_string_view<char32_t>;usingwstring_view=basic_string_view<wchar_t>;// hash supporttemplate<classT>structhash;template<>structhash<string_view>;template<>structhash<u8string_view>;template<>structhash<u16string_view>;template<>structhash<u32string_view>;template<>structhash<wstring_view>;inlinenamespaceliterals{inlinenamespacestring_view_literals{// suffix for basic_string_view literalsconstexprstring_viewoperator""sv(constchar*str,size_tlen)noexcept;constexpru8string_viewoperator""sv(constchar8_t*str,size_tlen)noexcept;constexpru16string_viewoperator""sv(constchar16_t*str,size_tlen)noexcept;constexpru32string_viewoperator""sv(constchar32_t*str,size_tlen)noexcept;constexprwstring_viewoperator""sv(constwchar_t*str,size_tlen)noexcept;}}}Class template
namespacestd{template<classCharT,classTraits=char_traits<CharT>>classbasic_string_view{public:// typesusingtraits_type=Traits;usingvalue_type=CharT;usingpointer=value_type*;usingconst_pointer=constvalue_type*;usingreference=value_type&;usingconst_reference=constvalue_type&;usingconst_iterator=/* implementation-defined */;usingiterator=const_iterator;usingconst_reverse_iterator=reverse_iterator<const_iterator>;usingreverse_iterator=const_reverse_iterator;usingsize_type=size_t;usingdifference_type=ptrdiff_t;staticconstexprsize_typenpos=size_type(-1);// construction and assignmentconstexprbasic_string_view()noexcept;constexprbasic_string_view(constbasic_string_view&)noexcept=default;constexprbasic_string_view&operator=(constbasic_string_view&)noexcept=default;constexprbasic_string_view(constCharT*str);basic_string_view(nullptr_t)=delete;constexprbasic_string_view(constCharT*str,size_typelen);template<classIt,classEnd>constexprbasic_string_view(Itbegin,Endend);template<classR>constexprexplicitbasic_string_view(R&&r);// iterator supportconstexprconst_iteratorbegin()constnoexcept;constexprconst_iteratorend()constnoexcept;constexprconst_iteratorcbegin()constnoexcept;constexprconst_iteratorcend()constnoexcept;constexprconst_reverse_iteratorrbegin()constnoexcept;constexprconst_reverse_iteratorrend()constnoexcept;constexprconst_reverse_iteratorcrbegin()constnoexcept;constexprconst_reverse_iteratorcrend()constnoexcept;// capacityconstexprsize_typesize()constnoexcept;constexprsize_typelength()constnoexcept;constexprsize_typemax_size()constnoexcept;constexprboolempty()constnoexcept;// element accessconstexprconst_referenceoperator[](size_typepos)const;constexprconst_referenceat(size_typepos)const;// freestanding-deletedconstexprconst_referencefront()const;constexprconst_referenceback()const;constexprconstCharT*data()constnoexcept;// modifiersconstexprvoidremove_prefix(size_typen);constexprvoidremove_suffix(size_typen);constexprvoidswap(basic_string_view&s)noexcept;// string operationsconstexprsize_typecopy(CharT*s,size_typen,size_typepos=0)const;// freestanding-deletedconstexprbasic_string_viewsubstr(size_typepos=0,size_typen=npos)const;// freestanding-deletedconstexprbasic_string_viewsubview(size_typepos=0,size_typen=npos)const;// freestanding-deletedconstexprintcompare(basic_string_views)constnoexcept;constexprintcompare(size_typepos1,size_typen1,basic_string_views)const;// freestanding-deletedconstexprintcompare(size_typepos1,size_typen1,basic_string_views,size_typepos2,size_typen2)const;// freestanding-deletedconstexprintcompare(constCharT*s)const;constexprintcompare(size_typepos1,size_typen1,constCharT*s)const;// freestanding-deletedconstexprintcompare(size_typepos1,size_typen1,constCharT*s,size_typen2)const;// freestanding-deletedconstexprboolstarts_with(basic_string_viewx)constnoexcept;constexprboolstarts_with(CharTx)constnoexcept;constexprboolstarts_with(constCharT*x)const;constexprboolends_with(basic_string_viewx)constnoexcept;constexprboolends_with(CharTx)constnoexcept;constexprboolends_with(constCharT*x)const;constexprboolcontains(basic_string_viewx)constnoexcept;constexprboolcontains(CharTx)constnoexcept;constexprboolcontains(constCharT*x)const;// searchingconstexprsize_typefind(basic_string_views,size_typepos=0)constnoexcept;constexprsize_typefind(CharTc,size_typepos=0)constnoexcept;constexprsize_typefind(constCharT*s,size_typepos,size_typen)const;constexprsize_typefind(constCharT*s,size_typepos=0)const;constexprsize_typerfind(basic_string_views,size_typepos=npos)constnoexcept;constexprsize_typerfind(CharTc,size_typepos=npos)constnoexcept;constexprsize_typerfind(constCharT*s,size_typepos,size_typen)const;constexprsize_typerfind(constCharT*s,size_typepos=npos)const;constexprsize_typefind_first_of(basic_string_views,size_typepos=0)constnoexcept;constexprsize_typefind_first_of(CharTc,size_typepos=0)constnoexcept;constexprsize_typefind_first_of(constCharT*s,size_typepos,size_typen)const;constexprsize_typefind_first_of(constCharT*s,size_typepos=0)const;constexprsize_typefind_last_of(basic_string_views,size_typepos=npos)constnoexcept;constexprsize_typefind_last_of(CharTc,size_typepos=npos)constnoexcept;constexprsize_typefind_last_of(constCharT*s,size_typepos,size_typen)const;constexprsize_typefind_last_of(constCharT*s,size_typepos=npos)const;constexprsize_typefind_first_not_of(basic_string_views,size_typepos=0)constnoexcept;constexprsize_typefind_first_not_of(CharTc,size_typepos=0)constnoexcept;constexprsize_typefind_first_not_of(constCharT*s,size_typepos,size_typen)const;constexprsize_typefind_first_not_of(constCharT*s,size_typepos=0)const;constexprsize_typefind_last_not_of(basic_string_views,size_typepos=npos)constnoexcept;constexprsize_typefind_last_not_of(CharTc,size_typepos=npos)constnoexcept;constexprsize_typefind_last_not_of(constCharT*s,size_typepos,size_typen)const;constexprsize_typefind_last_not_of(constCharT*s,size_typepos=npos)const;private:constCharT*/*data_*/;// exposition-onlysize_type/*size_*/;// exposition-only};// deduction guidestemplate<classIt,classEnd>basic_string_view(It,End)->basic_string_view<iter_value_t<It>>;template<classR>basic_string_view(R&&)->basic_string_view<ranges::range_value_t<R>>;}