std::basic_string_view
Defined in header <string_view> | ||
|---|---|---|
template<
class CharT,
class Traits = std::char_traits<CharT>
> class basic_string_view;
| (since C++17) |
The class template basic_string_view describes an object that can refer to a constant contiguous sequence of char-like objects with the first element of the sequence at position zero.
A typical implementation holds only two members: a pointer to constant CharT and a size.
Several typedefs for common character types are provided:
Defined in header <string_view> |
|
|---|---|
| Type | Definition |
std::string_view | std::basic_string_view<char> |
std::wstring_view | std::basic_string_view<wchar_t> |
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> |
Template parameters
| CharT | - | character type |
| Traits | - | CharTraits class specifying the operations on the character type. Like for basic_string, Traits::char_type must name the same type as CharT or the program is ill-formed. |
Member types
| Member type | Definition |
|---|---|
traits_type | Traits |
value_type | CharT |
pointer | CharT* |
const_pointer | const CharT* |
reference | CharT& |
const_reference | const CharT& |
const_iterator | implementation-defined constant LegacyRandomAccessIterator, ConstexprIterator (since C++20) and LegacyContiguousIterator whose value_type is CharT |
iterator | const_iterator |
reverse_iterator | const_reverse_iterator |
const_reverse_iterator | std::reverse_iterator<const_iterator> |
size_type | std::size_t |
difference_type | std::ptrdiff_t |
Note: iterator and const_iterator are the same type because string views are views into constant character sequences.
All requirements on the iterator types of a Container applies to the iterator and const_iterator types of basic_string_view as well.
Member functions
constructs a basic_string_view (public member function) |
|
| assigns a view (public member function) |
|
Iterators |
|
| returns an iterator to the beginning (public member function) |
|
| returns an iterator to the end (public member function) |
|
| returns a reverse iterator to the beginning (public member function) |
|
| returns a reverse iterator to the end (public member function) |
|
Element access |
|
| accesses the specified character (public member function) |
|
| accesses the specified character with bounds checking (public member function) |
|
| accesses the first character (public member function) |
|
| accesses the last character (public member function) |
|
| returns a pointer to the first character of a view (public member function) |
|
Capacity |
|
| returns the number of characters (public member function) |
|
| returns the maximum number of characters (public member function) |
|
| checks whether the view is empty (public member function) |
|
Modifiers |
|
| shrinks the view by moving its start forward (public member function) |
|
| shrinks the view by moving its end backward (public member function) |
|
| swaps the contents (public member function) |
|
Operations |
|
| copies characters (public member function) |
|
| returns a substring (public member function) |
|
| compares two views (public member function) |
|
|
(C++20) | checks if the string view starts with the given prefix (public member function) |
|
(C++20) | checks if the string view ends with the given suffix (public member function) |
| find characters in the view (public member function) |
|
| find the last occurrence of a substring (public member function) |
|
| find first occurrence of characters (public member function) |
|
| find last occurrence of characters (public member function) |
|
| find first absence of characters (public member function) |
|
| find last absence of characters (public member function) |
|
Constants |
|
|
[static] | special value. The exact meaning depends on the context (public static member constant) |
Non-member functions
| lexicographically compares two string views (function template) |
|
|
(C++20) | returns iterators to the beginning and the end of the string view (function) |
Input/output |
|
| performs stream output on string views (function template) |
|
Literals
Defined in inline namespace std::literals::string_view_literals |
|
|---|---|
|
(C++17) | Creates a string view of a character array literal (function) |
Helper classes
|
(C++17)(C++17)(C++20)(C++17)(C++17) | hash support for string views (class template specialization) |
Notes
It is the programmer's responsibility to ensure that std::string_view does not outlive the pointed-to character array:
std::string_view good("a string literal"); // OK: "good" points to a static array
std::string_view bad("a temporary string"s); // "bad" holds a dangling pointer
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
http://en.cppreference.com/w/cpp/string/basic_string_view