##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### Actions

# std::basic_string_view

From cppreference.com
< cpp‎ | string

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::u16string_view | std::basic_string_view<char16_t>
std::u32string_view | std::basic_string_view<char32_t>

### [edit] Template parameters

CharT | - | character type
Traits | - | `CharTraits` class specifying the operations on the character type. Traits::char_type must name the same type as CharT.

### [edit] 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 `RandomAccessIterator` and `ContiguousIterator` 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.

### [edit] Member functions

(constructor) | constructs a `basic_string_view` (public member function) [edit]
operator= | assigns a view (public member function) [edit]
##### Iterators
begin cbegin | returns an iterator to the beginning (public member function) [edit]
end cend | returns an iterator to the end (public member function) [edit]
rbegin crbegin | returns a reverse iterator to the beginning (public member function) [edit]
rend crend | returns a reverse iterator to the end (public member function) [edit]
##### Element access
operator[] | access specified character (public member function) [edit]
at | access specified character with bounds checking (public member function) [edit]
front | accesses the first character (public member function) [edit]
back | accesses the last character (public member function) [edit]
data | returns a pointer to the first character of a view (public member function) [edit]
##### Capacity
size length | returns the number of characters (public member function) [edit]
max_size | returns the maximum number of characters (public member function) [edit]
empty | checks whether the view is empty (public member function) [edit]
##### Modifers
remove_prefix | shrinks the view by moving its start forward (public member function) [edit]
remove_suffix | shrinks the view by moving its end backward (public member function) [edit]
swap | swaps the contents (public member function) [edit]
##### Operations
copy | copies characters (public member function) [edit]
substr | returns a substring (public member function) [edit]
compare | compares two views (public member function) [edit]
find | find characters in the view (public member function) [edit]
rfind | find the last occurrence of a substring (public member function) [edit]
find_first_of | find first occurrence of characters (public member function) [edit]
find_last_of | find last occurrence of characters (public member function) [edit]
find_first_not_of | find first absence of characters (public member function) [edit]
find_last_not_of | find last absence of characters (public member function) [edit]
### Constants
npos [static] | special value. The exact meaning depends on the context (public static member constant) [edit]

### [edit] Non-member functions

operator==operator!=operator<operator>operator<=operator>= | lexicographically compares two string views (function template) [edit]
##### Input/output
operator<< | performs stream output on string views (function template) [edit]

### [edit] Literals

Defined in inline namespace `std::literals::string_view_literals`
operator""sv (C++17) | Creates a string view of a character array literal (function) [edit]

### [edit] Helper classes

std::hash<std::string_view>std::hash<std::wstring_view>std::hash<std::u16string_view>std::hash<std::u32string_view> (C++17) | hash support for string views (class template specialization) [edit]

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=cpp/string/basic_string_view&oldid=91279"