__gnu_debug::basic_string< _CharT, _Traits, _Allocator >(3) Library Functions Manual NAME __gnu_debug::basic_string< _CharT, _Traits, _Allocator > - Class std::basic_string with safety/checking/debug instrumentation. SYNOPSIS #include Inherits __gnu_debug::_Safe_container< _SafeContainer, _Alloc, _SafeBase, _IsCxx11AllocatorAware >, and std::basic_string< _CharT, _Traits, _Alloc >. Public Types typedef _Allocator allocator_type typedef __gnu_debug::_Safe_iterator< typename _Base::const_iterator, basic_string > const_iterator typedef _Base::const_pointer const_pointer typedef _Base::const_reference const_reference typedef std::reverse_iterator< const_iterator > const_reverse_iterator typedef _Base::difference_type difference_type typedef __gnu_debug::_Safe_iterator< typename _Base::iterator, basic_string > iterator typedef _Base::pointer pointer typedef _Base::reference reference typedef std::reverse_iterator< iterator > reverse_iterator typedef _Base::size_type size_type typedef _Traits traits_type typedef _Traits::char_type value_type Public Member Functions basic_string (_Base &&__base) noexcept template basic_string (_InputIterator __begin, _InputIterator __end, const _Allocator &__a=_Allocator()) basic_string (basic_string &&)=default basic_string (basic_string &&__s, const _Allocator &__a) noexcept(std::is_nothrow_constructible< _Base, _Base, const _Allocator & >::value) basic_string (const _Allocator &__a) noexcept basic_string (const _Base &__base) basic_string (const _CharT *__s, const _Allocator &__a=_Allocator()) basic_string (const _CharT *__s, size_type __n, const _Allocator &__a=_Allocator()) basic_string (const basic_string &)=default basic_string (const basic_string &__s, const _Allocator &__a) basic_string (const basic_string &__str, size_type __pos, size_type __n=_Base::npos, const _Allocator &__a=_Allocator()) basic_string (size_type __n, _CharT __c, const _Allocator &__a=_Allocator()) basic_string (std::initializer_list< _CharT > __l, const _Allocator &__a=_Allocator()) const _Base & _M_base () const noexcept _Base & _M_base () noexcept template basic_string< _CharT, _Traits, _Alloc > & _M_replace_dispatch (iterator __i1, iterator __i2, _InputIterator __k1, _InputIterator __k2, __false_type) template _CharT * _S_construct (_InIterator __beg, _InIterator __end, const _Alloc &__a, forward_iterator_tag) template basic_string & append (_InputIterator __first, _InputIterator __last) basic_string & append (const _CharT *__s) basic_string & append (const _CharT *__s, size_type __n) template _If_sv< _Tp, basic_string & > append (const _Tp &__svt) Append a string_view. template _If_sv< _Tp, basic_string & > append (const _Tp &__svt, size_type __pos, size_type __n=npos) Append a range of characters from a string_view. basic_string & append (const basic_string &__str) Append a string to this string. basic_string & append (const basic_string &__str) basic_string & append (const basic_string &__str, size_type __pos, size_type __n) basic_string & append (const basic_string &__str, size_type __pos, size_type __n=npos) Append a substring. basic_string & append (initializer_list< _CharT > __l) Append an initializer_list of characters. basic_string & append (size_type __n, _CharT __c) template basic_string & assign (_InputIterator __first, _InputIterator __last) basic_string & assign (basic_string &&__str) noexcept(allocator_traits< _Alloc >::is_always_equal::value) Set value to contents of another string. basic_string & assign (basic_string &&__x) noexcept(noexcept(std::declval< _Base & >().assign(std::move(__x)))) basic_string & assign (const _CharT *__s) basic_string & assign (const _CharT *__s, size_type __n) template _If_sv< _Tp, basic_string & > assign (const _Tp &__svt) Set value from a string_view. template _If_sv< _Tp, basic_string & > assign (const _Tp &__svt, size_type __pos, size_type __n=npos) Set value from a range of characters in a string_view. basic_string & assign (const basic_string &__str) Set value to contents of another string. basic_string & assign (const basic_string &__str, size_type __pos, size_type __n) basic_string & assign (const basic_string &__str, size_type __pos, size_type __n=npos) Set value to a substring of a string. basic_string & assign (const basic_string &__x) basic_string & assign (size_type __n, _CharT __c) basic_string & assign (std::initializer_list< _CharT > __l) reference at (size_type __n) Provides access to the data contained in the string. const_reference at (size_type __n) const Provides access to the data contained in the string. reference back () const_reference back () const noexcept iterator begin () const_iterator begin () const noexcept const _CharT * c_str () const noexcept size_type capacity () const noexcept const_iterator cbegin () const noexcept const_iterator cend () const noexcept void clear () int compare (const _CharT *__s) const noexcept Compare to a C string. constexpr int compare (const _CharT *__s) const noexcept template _If_sv< _Tp, int > compare (const _Tp &__svt) const noexcept(is_same< _Tp, __sv_type >::value) Compare to a string_view. int compare (const basic_string &__str) const Compare to a string. int compare (const basic_string &__str) const Compare to a string. template _If_sv< _Tp, int > compare (size_type __pos, size_type __n, const _Tp &__svt) const noexcept(is_same< _Tp, __sv_type >::value) Compare to a string_view. int compare (size_type __pos, size_type __n, const basic_string &__str) const Compare substring to a string. int compare (size_type __pos, size_type __n, const basic_string &__str) const Compare substring to a string. int compare (size_type __pos, size_type __n1, const _CharT *__s) const Compare substring to a C string. int compare (size_type __pos, size_type __n1, const _CharT *__s, size_type __n2) const Compare substring against a character array. constexpr int compare (size_type __pos1, size_type __n1, const _CharT *__s) const constexpr int compare (size_type __pos1, size_type __n1, const _CharT *__s, size_type __n2) const template _If_sv< _Tp, int > compare (size_type __pos1, size_type __n1, const _Tp &__svt, size_type __pos2, size_type __n2=npos) const noexcept(is_same< _Tp, __sv_type >::value) Compare to a string_view. int compare (size_type __pos1, size_type __n1, const basic_string &__str, size_type __pos2, size_type __n2=npos) const Compare substring to a substring. int compare (size_type __pos1, size_type __n1, const basic_string &__str, size_type __pos2, size_type __n2=npos) const Compare substring to a substring. size_type copy (_CharT *__s, size_type __n, size_type __pos=0) const const_reverse_iterator crbegin () const noexcept const_reverse_iterator crend () const noexcept const _CharT * data () const noexcept _CharT * data () noexcept Return non-const pointer to contents. bool empty () const noexcept iterator end () const_iterator end () const noexcept bool ends_with (_CharT __x) const noexcept bool ends_with (basic_string_view< _CharT, _Traits > __x) const noexcept bool ends_with (const _CharT *__x) const noexcept iterator erase (__const_iterator __first, __const_iterator __last) iterator erase (__const_iterator __position) iterator erase (iterator __first, iterator __last) Remove a range of characters. iterator erase (iterator __position) Remove one character. basic_string & erase (size_type __pos=0, size_type __n=_Base::npos) size_type find (_CharT __c, size_type __pos=0) const noexcept Find position of a character. size_type find (const _CharT *__s, size_type __pos, size_type __n) const noexcept Find position of a C substring. constexpr size_type find (const _CharT *__s, size_type __pos, size_type __n) const noexcept size_type find (const _CharT *__s, size_type __pos=0) const noexcept Find position of a C string. constexpr size_type find (const _CharT *__s, size_type __pos=0) const noexcept template _If_sv< _Tp, size_type > find (const _Tp &__svt, size_type __pos=0) const noexcept(is_same< _Tp, __sv_type >::value) Find position of a string_view. size_type find (const basic_string &__str, size_type __pos=0) const noexcept Find position of a string. size_type find (const basic_string &__str, size_type __pos=0) const noexcept Find position of a string. size_type find_first_not_of (_CharT __c, size_type __pos=0) const noexcept Find position of a different character. size_type find_first_not_of (const _CharT *__s, size_type __pos, size_type __n) const noexcept Find position of a character not in C substring. constexpr size_type find_first_not_of (const _CharT *__s, size_type __pos, size_type __n) const noexcept size_type find_first_not_of (const _CharT *__s, size_type __pos=0) const noexcept Find position of a character not in C string. constexpr size_type find_first_not_of (const _CharT *__s, size_type __pos=0) const noexcept template _If_sv< _Tp, size_type > find_first_not_of (const _Tp &__svt, size_type __pos=0) const noexcept(is_same< _Tp, __sv_type >::value) Find position of a character not in a string_view. size_type find_first_not_of (const basic_string &__str, size_type __pos=0) const noexcept Find position of a character not in string. size_type find_first_not_of (const basic_string &__str, size_type __pos=0) const noexcept Find position of a character not in string. size_type find_first_of (_CharT __c, size_type __pos=0) const noexcept Find position of a character. size_type find_first_of (const _CharT *__s, size_type __pos, size_type __n) const noexcept Find position of a character of C substring. constexpr size_type find_first_of (const _CharT *__s, size_type __pos, size_type __n) const noexcept size_type find_first_of (const _CharT *__s, size_type __pos=0) const noexcept Find position of a character of C string. constexpr size_type find_first_of (const _CharT *__s, size_type __pos=0) const noexcept template _If_sv< _Tp, size_type > find_first_of (const _Tp &__svt, size_type __pos=0) const noexcept(is_same< _Tp, __sv_type >::value) Find position of a character of a string_view. size_type find_first_of (const basic_string &__str, size_type __pos=0) const noexcept Find position of a character of string. size_type find_first_of (const basic_string &__str, size_type __pos=0) const noexcept Find position of a character of string. size_type find_last_not_of (_CharT __c, size_type __pos=npos) const noexcept Find last position of a different character. size_type find_last_not_of (const _CharT *__s, size_type __pos, size_type __n) const noexcept Find last position of a character not in C substring. constexpr size_type find_last_not_of (const _CharT *__s, size_type __pos, size_type __n) const noexcept constexpr size_type find_last_not_of (const _CharT *__s, size_type __pos=_Base::npos) const noexcept size_type find_last_not_of (const _CharT *__s, size_type __pos=npos) const noexcept Find last position of a character not in C string. template _If_sv< _Tp, size_type > find_last_not_of (const _Tp &__svt, size_type __pos=npos) const noexcept(is_same< _Tp, __sv_type >::value) Find last position of a character not in a string_view. size_type find_last_not_of (const basic_string &__str, size_type __pos=npos) const noexcept Find last position of a character not in string. size_type find_last_not_of (const basic_string &__str, size_type __pos=npos) const noexcept Find last position of a character not in string. size_type find_last_of (_CharT __c, size_type __pos=npos) const noexcept Find last position of a character. size_type find_last_of (const _CharT *__s, size_type __pos, size_type __n) const noexcept Find last position of a character of C substring. constexpr size_type find_last_of (const _CharT *__s, size_type __pos, size_type __n) const noexcept constexpr size_type find_last_of (const _CharT *__s, size_type __pos=_Base::npos) const noexcept size_type find_last_of (const _CharT *__s, size_type __pos=npos) const noexcept Find last position of a character of C string. template _If_sv< _Tp, size_type > find_last_of (const _Tp &__svt, size_type __pos=npos) const noexcept(is_same< _Tp, __sv_type >::value) Find last position of a character of string. size_type find_last_of (const basic_string &__str, size_type __pos=npos) const noexcept Find last position of a character of string. size_type find_last_of (const basic_string &__str, size_type __pos=npos) const noexcept Find last position of a character of string. reference front () const_reference front () const noexcept allocator_type get_allocator () const noexcept Return copy of allocator used to construct this string. iterator insert (__const_iterator __p, _CharT __c) template iterator insert (__const_iterator __p, _InputIterator __first, _InputIterator __last) iterator insert (const_iterator __p, size_type __n, _CharT __c) iterator insert (const_iterator __p, std::initializer_list< _CharT > __l) iterator insert (iterator __p, _CharT __c) Insert one character. template void insert (iterator __p, _InputIterator __beg, _InputIterator __end) Insert a range of characters. void insert (iterator __p, initializer_list< _CharT > __l) Insert an initializer_list of characters. void insert (iterator __p, size_type __n, _CharT __c) Insert multiple characters. basic_string & insert (size_type __pos, const _CharT *__s) basic_string & insert (size_type __pos, const _CharT *__s, size_type __n) template _If_sv< _Tp, basic_string & > insert (size_type __pos, const _Tp &__svt) Insert a string_view. basic_string & insert (size_type __pos, size_type __n, _CharT __c) template _If_sv< _Tp, basic_string & > insert (size_type __pos1, const _Tp &__svt, size_type __pos2, size_type __n=npos) Insert a string_view. basic_string & insert (size_type __pos1, const basic_string &__str) Insert value of a string. basic_string & insert (size_type __pos1, const basic_string &__str) basic_string & insert (size_type __pos1, const basic_string &__str, size_type __pos2, size_type __n) basic_string & insert (size_type __pos1, const basic_string &__str, size_type __pos2, size_type __n=npos) Insert a substring. size_type length () const noexcept Returns the number of characters in the string, not including any null-termination. size_type max_size () const noexcept Returns the size() of the largest possible string. operator __sv_type () const noexcept Convert to a string_view. basic_string & operator+= (_CharT __c) basic_string & operator+= (const _CharT *__s) template _If_sv< _Tp, basic_string & > operator+= (const _Tp &__svt) Append a string_view. basic_string & operator+= (const basic_string &__str) Append a string to this string. basic_string & operator+= (const basic_string &__str) basic_string & operator+= (std::initializer_list< _CharT > __l) basic_string & operator= (_CharT __c) basic_string & operator= (basic_string &&)=default basic_string & operator= (const _CharT *__s) basic_string & operator= (const basic_string &)=default basic_string & operator= (std::initializer_list< _CharT > __l) reference operator[] (size_type __pos) const_reference operator[] (size_type __pos) const noexcept void pop_back () void push_back (_CharT __c) reverse_iterator rbegin () const_reverse_iterator rbegin () const noexcept reverse_iterator rend () const_reverse_iterator rend () const noexcept template basic_string & replace (__const_iterator __i1, __const_iterator __i2, _InputIterator __j1, _InputIterator __j2) basic_string & replace (__const_iterator __i1, __const_iterator __i2, const _CharT *__s) basic_string & replace (__const_iterator __i1, __const_iterator __i2, const _CharT *__s, size_type __n) basic_string & replace (__const_iterator __i1, __const_iterator __i2, const basic_string &__str) basic_string & replace (__const_iterator __i1, __const_iterator __i2, size_type __n, _CharT __c) basic_string & replace (__const_iterator __i1, __const_iterator __i2, std::initializer_list< _CharT > __l) template _If_sv< _Tp, basic_string & > replace (const_iterator __i1, const_iterator __i2, const _Tp &__svt) Replace range of characters with string_view. basic_string & replace (iterator __i1, iterator __i2, _CharT *__k1, _CharT *__k2) template basic_string & replace (iterator __i1, iterator __i2, _InputIterator __k1, _InputIterator __k2) Replace range of characters with range. basic_string & replace (iterator __i1, iterator __i2, const _CharT *__k1, const _CharT *__k2) basic_string & replace (iterator __i1, iterator __i2, const _CharT *__s) Replace range of characters with C string. basic_string & replace (iterator __i1, iterator __i2, const _CharT *__s, size_type __n) Replace range of characters with C substring. basic_string & replace (iterator __i1, iterator __i2, const basic_string &__str) Replace range of characters with string. basic_string & replace (iterator __i1, iterator __i2, const_iterator __k1, const_iterator __k2) basic_string & replace (iterator __i1, iterator __i2, initializer_list< _CharT > __l) Replace range of characters with initializer_list. basic_string & replace (iterator __i1, iterator __i2, iterator __k1, iterator __k2) basic_string & replace (iterator __i1, iterator __i2, size_type __n, _CharT __c) Replace range of characters with multiple characters. template _If_sv< _Tp, basic_string & > replace (size_type __pos, size_type __n, const _Tp &__svt) Replace range of characters with string_view. basic_string & replace (size_type __pos, size_type __n, const basic_string &__str) Replace characters with value from another string. basic_string & replace (size_type __pos, size_type __n1, const _CharT *__s) basic_string & replace (size_type __pos, size_type __n1, const _CharT *__s, size_type __n2) basic_string & replace (size_type __pos, size_type __n1, size_type __n2, _CharT __c) template _If_sv< _Tp, basic_string & > replace (size_type __pos1, size_type __n1, const _Tp &__svt, size_type __pos2, size_type __n2=npos) Replace range of characters with string_view. basic_string & replace (size_type __pos1, size_type __n1, const basic_string &__str) basic_string & replace (size_type __pos1, size_type __n1, const basic_string &__str, size_type __pos2, size_type __n2) basic_string & replace (size_type __pos1, size_type __n1, const basic_string &__str, size_type __pos2, size_type __n2=npos) Replace characters with value from another string. void reserve () Equivalent to shrink_to_fit(). void reserve (size_type __res_arg) Attempt to preallocate enough memory for specified number of characters. void resize (size_type __n) void resize (size_type __n, _CharT __c) size_type rfind (_CharT __c, size_type __pos=npos) const noexcept Find last position of a character. constexpr size_type rfind (const _CharT *__s, size_type __pos, size_type __n) const size_type rfind (const _CharT *__s, size_type __pos, size_type __n) const noexcept Find last position of a C substring. constexpr size_type rfind (const _CharT *__s, size_type __pos=_Base::npos) const size_type rfind (const _CharT *__s, size_type __pos=npos) const noexcept Find last position of a C string. template _If_sv< _Tp, size_type > rfind (const _Tp &__svt, size_type __pos=npos) const noexcept(is_same< _Tp, __sv_type >::value) Find last position of a string_view. size_type rfind (const basic_string &__str, size_type __pos=npos) const noexcept Find last position of a string. size_type rfind (const basic_string &__str, size_type __pos=npos) const noexcept Find last position of a string. void shrink_to_fit () noexcept size_type size () const noexcept Returns the number of characters in the string, not including any null-termination. bool starts_with (_CharT __x) const noexcept bool starts_with (basic_string_view< _CharT, _Traits > __x) const noexcept bool starts_with (const _CharT *__x) const noexcept basic_string substr (size_type __pos=0, size_type __n=_Base::npos) const void swap (basic_string &__s) noexcept(/*conditional */) Swap contents with another string. void swap (basic_string &__x) noexcept(/*conditional */) Static Public Attributes static const size_type npos Value returned by various member functions when they fail. Protected Member Functions void _M_swap (_Safe_container &__x) noexcept Friends template class ::__gnu_debug::_Safe_iterator Detailed Description template, typename _Allocator = std::allocator<_CharT>> class __gnu_debug::basic_string< _CharT, _Traits, _Allocator >"Class std::basic_string with safety/checking/debug instrumentation. Member Function Documentation template template _If_sv< _Tp, basic_string & > std::basic_string< _CharT, _Traits, _Alloc >::append (const _Tp & __svt) [inline], [inherited] Append a string_view. Parameters __svt The object convertible to string_view to be appended. Returns Reference to this string. References std::basic_string< _CharT, _Traits, _Alloc >::append(), and std::forward(). template template _If_sv< _Tp, basic_string & > std::basic_string< _CharT, _Traits, _Alloc >::append (const _Tp & __svt, size_type __pos, size_type __n = npos) [inline], [inherited] Append a range of characters from a string_view. Parameters __svt The object convertible to string_view to be appended from. __pos The position in the string_view to append from. __n The number of characters to append from the string_view. Returns Reference to this string. References std::basic_string< _CharT, _Traits, _Alloc >::append(), and std::forward(). template basic_string< _CharT, _Traits, _Alloc > & std::basic_string< _CharT, _Traits, _Alloc >::append (const basic_string< _CharT, _Traits, _Alloc > & __str) [inherited] Append a string to this string. Parameters __str The string to append. Returns Reference to this string. References std::forward(), and std::size(). Referenced by std::basic_string< _CharT, _Traits, _Alloc >::append(), std::basic_string< _CharT, _Traits, _Alloc >::append(), std::basic_string< _CharT, _Traits, _Alloc >::append(), std::basic_string< _CharT, _Traits, _Alloc >::append(), std::basic_string< _CharT, _Traits, _Alloc >::operator+=(), std::basic_string< _CharT, _Traits, _Alloc >::operator+=(), std::basic_string< _CharT, _Traits, _Alloc >::operator+=(), std::basic_string< _CharT, _Traits, _Alloc >::operator+=(), and std::basic_string< _CharT, _Traits, _Alloc >::resize(). template basic_string< _CharT, _Traits, _Alloc > & std::basic_string< _CharT, _Traits, _Alloc >::append (const basic_string< _CharT, _Traits, _Alloc > & __str, size_type __pos, size_type __n = npos) [inherited] Append a substring. Parameters __str The string to append. __pos Index of the first character of str to append. __n The number of characters to append. Returns Reference to this string. Exceptions std::out_of_range if __pos is not a valid index. This function appends __n characters from __str starting at __pos to this string. If __n is is larger than the number of available characters in __str, the remainder of __str is appended. References std::forward(), and std::size(). template basic_string & std::basic_string< _CharT, _Traits, _Alloc >::append (initializer_list< _CharT > __l) [inline], [inherited] Append an initializer_list of characters. Parameters __l The initializer_list of characters to append. Returns Reference to this string. References std::basic_string< _CharT, _Traits, _Alloc >::append(), and std::forward(). template basic_string & std::basic_string< _CharT, _Traits, _Alloc >::assign (basic_string< _CharT, _Traits, _Alloc > && __str) [inline], [noexcept], [inherited] Set value to contents of another string. Parameters __str Source string to use. Returns Reference to this string. This function sets this string to the exact contents of __str. __str is a valid, but unspecified string. References std::forward(). template template _If_sv< _Tp, basic_string & > std::basic_string< _CharT, _Traits, _Alloc >::assign (const _Tp & __svt) [inline], [inherited] Set value from a string_view. Parameters __svt The source object convertible to string_view. Returns Reference to this string. References std::basic_string< _CharT, _Traits, _Alloc >::assign(), and std::forward(). template template _If_sv< _Tp, basic_string & > std::basic_string< _CharT, _Traits, _Alloc >::assign (const _Tp & __svt, size_type __pos, size_type __n = npos) [inline], [inherited] Set value from a range of characters in a string_view. Parameters __svt The source object convertible to string_view. __pos The position in the string_view to assign from. __n The number of characters to assign. Returns Reference to this string. References std::basic_string< _CharT, _Traits, _Alloc >::assign(), and std::forward(). template basic_string< _CharT, _Traits, _Alloc > & std::basic_string< _CharT, _Traits, _Alloc >::assign (const basic_string< _CharT, _Traits, _Alloc > & __str) [inherited] Set value to contents of another string. Parameters __str Source string to use. Returns Reference to this string. References std::forward(). Referenced by std::basic_string< _CharT, _Traits, _Alloc >::assign(), std::basic_string< _CharT, _Traits, _Alloc >::assign(), std::basic_string< _CharT, _Traits, _Alloc >::assign(), std::basic_string< _CharT, _Traits, _Alloc >::assign(), std::basic_string< _CharT, _Traits, _Alloc >::assign(), std::basic_string< _CharT, _Traits, _Alloc >::operator=(), std::basic_string< _CharT, _Traits, _Alloc >::operator=(), std::basic_string< _CharT, _Traits, _Alloc >::operator=(), std::basic_string< _CharT, _Traits, _Alloc >::operator=(), std::basic_string< _CharT, _Traits, _Alloc >::operator=(), and std::basic_stringbuf< _CharT, _Traits, _Alloc >::str(). template basic_string & std::basic_string< _CharT, _Traits, _Alloc >::assign (const basic_string< _CharT, _Traits, _Alloc > & __str, size_type __pos, size_type __n = npos) [inline], [inherited] Set value to a substring of a string. Parameters __str The string to use. __pos Index of the first character of str. __n Number of characters to use. Returns Reference to this string. Exceptions std::out_of_range if pos is not a valid index. This function sets this string to the substring of __str consisting of __n characters at __pos. If __n is is larger than the number of available characters in __str, the remainder of __str is used. References std::basic_string< _CharT, _Traits, _Alloc >::assign(), and std::forward(). template, typename _Allocator = std::allocator<_CharT>> reference std::basic_string< _CharT, _Traits, _Alloc >::at (size_type __n) [inline] Provides access to the data contained in the string. Parameters __n The index of the character to access. Returns Read/write reference to the character. Exceptions std::out_of_range If n is an invalid index. This function provides for safer data access. The parameter is first checked that it is in the range of the string. The function throws out_of_range if the check fails. Success results in unsharing the string. template, typename _Allocator = std::allocator<_CharT>> const_reference std::basic_string< _CharT, _Traits, _Alloc >::at (size_type __n) const [inline] Provides access to the data contained in the string. Parameters __n The index of the character to access. Returns Read-only (const) reference to the character. Exceptions std::out_of_range If n is an invalid index. This function provides for safer data access. The parameter is first checked that it is in the range of the string. The function throws out_of_range if the check fails. template, typename _Allocator = std::allocator<_CharT>> reference std::basic_string< _CharT, _Traits, _Alloc >::back () [inline] Returns a read/write reference to the data at the last element of the string. template, typename _Allocator = std::allocator<_CharT>> const_reference std::basic_string< _CharT, _Traits, _Alloc >::back () const [inline], [noexcept] Returns a read-only (constant) reference to the data at the last element of the string. template, typename _Allocator = std::allocator<_CharT>> size_type std::basic_string< _CharT, _Traits, _Alloc >::capacity () const [inline], [noexcept] Returns the total number of characters that the string can hold before needing to allocate more memory. template, typename _Allocator = std::allocator<_CharT>> int std::basic_string< _CharT, _Traits, _Alloc >::compare (const _CharT * __s) const [inline], [noexcept] Compare to a C string. Parameters __s C string to compare against. Returns Integer < 0, 0, or > 0. Returns an integer < 0 if this string is ordered before __s, 0 if their values are equivalent, or > 0 if this string is ordered after __s. Determines the effective length rlen of the strings to compare as the smallest of size() and the length of a string constructed from __s. The function then compares the two strings by calling traits::compare(data(),s,rlen). If the result of the comparison is nonzero returns it, otherwise the shorter one is ordered first. template, typename _Allocator = std::allocator<_CharT>> template _If_sv< _Tp, int > std::basic_string< _CharT, _Traits, _Alloc >::compare (const _Tp & __svt) const [inline], [noexcept] Compare to a string_view. Parameters __svt An object convertible to string_view to compare against. Returns Integer < 0, 0, or > 0. template int std::basic_string< _CharT, _Traits, _Alloc >::compare (const basic_string< _CharT, _Traits, _Alloc > & __str) const [inline], [inherited] Compare to a string. Parameters __str String to compare against. Returns Integer < 0, 0, or > 0. Returns an integer < 0 if this string is ordered before __str, 0 if their values are equivalent, or > 0 if this string is ordered after __str. Determines the effective length rlen of the strings to compare as the smallest of size() and str.size(). The function then compares the two strings by calling traits::compare(data(), str.data(),rlen). If the result of the comparison is nonzero returns it, otherwise the shorter one is ordered first. References std::forward(), std::min(), and std::basic_string< _CharT, _Traits, _Alloc >::size(). template, typename _Allocator = std::allocator<_CharT>> int std::basic_string< _CharT, _Traits, _Alloc >::compare (const basic_string< _CharT, _Traits, _Allocator > & __str) const [inline] Compare to a string. Parameters __str String to compare against. Returns Integer < 0, 0, or > 0. Returns an integer < 0 if this string is ordered before __str, 0 if their values are equivalent, or > 0 if this string is ordered after __str. Determines the effective length rlen of the strings to compare as the smallest of size() and str.size(). The function then compares the two strings by calling traits::compare(data(), str.data(),rlen). If the result of the comparison is nonzero returns it, otherwise the shorter one is ordered first. template, typename _Allocator = std::allocator<_CharT>> template _If_sv< _Tp, int > std::basic_string< _CharT, _Traits, _Alloc >::compare (size_type __pos, size_type __n, const _Tp & __svt) const [inline], [noexcept] Compare to a string_view. Parameters __pos A position in the string to start comparing from. __n The number of characters to compare. __svt An object convertible to string_view to compare against. Returns Integer < 0, 0, or > 0. template int std::basic_string< _CharT, _Traits, _Alloc >::compare (size_type __pos, size_type __n, const basic_string< _CharT, _Traits, _Alloc > & __str) const [inline], [inherited] Compare substring to a string. Parameters __pos Index of first character of substring. __n Number of characters in substring. __str String to compare against. Returns Integer < 0, 0, or > 0. Form the substring of this string from the __n characters starting at __pos. Returns an integer < 0 if the substring is ordered before __str, 0 if their values are equivalent, or > 0 if the substring is ordered after __str. Determines the effective length rlen of the strings to compare as the smallest of the length of the substring and __str.size(). The function then compares the two strings by calling traits::compare(substring.data(),str.data(),rlen). If the result of the comparison is nonzero returns it, otherwise the shorter one is ordered first. References std::forward(), and std::min(). template, typename _Allocator = std::allocator<_CharT>> int std::basic_string< _CharT, _Traits, _Alloc >::compare (size_type __pos, size_type __n, const basic_string< _CharT, _Traits, _Allocator > & __str) const [inline] Compare substring to a string. Parameters __pos Index of first character of substring. __n Number of characters in substring. __str String to compare against. Returns Integer < 0, 0, or > 0. Form the substring of this string from the __n characters starting at __pos. Returns an integer < 0 if the substring is ordered before __str, 0 if their values are equivalent, or > 0 if the substring is ordered after __str. Determines the effective length rlen of the strings to compare as the smallest of the length of the substring and __str.size(). The function then compares the two strings by calling traits::compare(substring.data(),str.data(),rlen). If the result of the comparison is nonzero returns it, otherwise the shorter one is ordered first. template, typename _Allocator = std::allocator<_CharT>> int std::basic_string< _CharT, _Traits, _Alloc >::compare (size_type __pos, size_type __n1, const _CharT * __s) const [inline] Compare substring to a C string. Parameters __pos Index of first character of substring. __n1 Number of characters in substring. __s C string to compare against. Returns Integer < 0, 0, or > 0. Form the substring of this string from the __n1 characters starting at pos. Returns an integer < 0 if the substring is ordered before __s, 0 if their values are equivalent, or > 0 if the substring is ordered after __s. Determines the effective length rlen of the strings to compare as the smallest of the length of the substring and the length of a string constructed from __s. The function then compares the two string by calling traits::compare(substring.data(),__s,rlen). If the result of the comparison is nonzero returns it, otherwise the shorter one is ordered first. template, typename _Allocator = std::allocator<_CharT>> int std::basic_string< _CharT, _Traits, _Alloc >::compare (size_type __pos, size_type __n1, const _CharT * __s, size_type __n2) const [inline] Compare substring against a character array. Parameters __pos Index of first character of substring. __n1 Number of characters in substring. __s character array to compare against. __n2 Number of characters of s. Returns Integer < 0, 0, or > 0. Form the substring of this string from the __n1 characters starting at __pos. Form a string from the first __n2 characters of __s. Returns an integer < 0 if this substring is ordered before the string from __s, 0 if their values are equivalent, or > 0 if this substring is ordered after the string from __s. Determines the effective length rlen of the strings to compare as the smallest of the length of the substring and __n2. The function then compares the two strings by calling traits::compare(substring.data(),s,rlen). If the result of the comparison is nonzero returns it, otherwise the shorter one is ordered first. NB: s must have at least n2 characters, '\0' has no special meaning. template, typename _Allocator = std::allocator<_CharT>> template _If_sv< _Tp, int > std::basic_string< _CharT, _Traits, _Alloc >::compare (size_type __pos1, size_type __n1, const _Tp & __svt, size_type __pos2, size_type __n2 = npos) const [inline], [noexcept] Compare to a string_view. Parameters __pos1 A position in the string to start comparing from. __n1 The number of characters to compare. __svt An object convertible to string_view to compare against. __pos2 A position in the string_view to start comparing from. __n2 The number of characters to compare. Returns Integer < 0, 0, or > 0. template int std::basic_string< _CharT, _Traits, _Alloc >::compare (size_type __pos1, size_type __n1, const basic_string< _CharT, _Traits, _Alloc > & __str, size_type __pos2, size_type __n2 = npos) const [inline], [inherited] Compare substring to a substring. Parameters __pos1 Index of first character of substring. __n1 Number of characters in substring. __str String to compare against. __pos2 Index of first character of substring of str. __n2 Number of characters in substring of str. Returns Integer < 0, 0, or > 0. Form the substring of this string from the __n1 characters starting at __pos1. Form the substring of __str from the __n2 characters starting at __pos2. Returns an integer < 0 if this substring is ordered before the substring of __str, 0 if their values are equivalent, or > 0 if this substring is ordered after the substring of __str. Determines the effective length rlen of the strings to compare as the smallest of the lengths of the substrings. The function then compares the two strings by calling traits::compare(substring.data(),str.substr(pos2,n2).data(),rlen). If the result of the comparison is nonzero returns it, otherwise the shorter one is ordered first. References std::forward(), and std::min(). template, typename _Allocator = std::allocator<_CharT>> int std::basic_string< _CharT, _Traits, _Alloc >::compare (size_type __pos1, size_type __n1, const basic_string< _CharT, _Traits, _Allocator > & __str, size_type __pos2, size_type __n2 = npos) const [inline] Compare substring to a substring. Parameters __pos1 Index of first character of substring. __n1 Number of characters in substring. __str String to compare against. __pos2 Index of first character of substring of str. __n2 Number of characters in substring of str. Returns Integer < 0, 0, or > 0. Form the substring of this string from the __n1 characters starting at __pos1. Form the substring of __str from the __n2 characters starting at __pos2. Returns an integer < 0 if this substring is ordered before the substring of __str, 0 if their values are equivalent, or > 0 if this substring is ordered after the substring of __str. Determines the effective length rlen of the strings to compare as the smallest of the lengths of the substrings. The function then compares the two strings by calling traits::compare(substring.data(),str.substr(pos2,n2).data(),rlen). If the result of the comparison is nonzero returns it, otherwise the shorter one is ordered first. template _CharT * std::basic_string< _CharT, _Traits, _Alloc >::data () [inline], [noexcept], [inherited] Return non-const pointer to contents. This is a pointer to the character sequence held by the string. Modifying the characters in the sequence is allowed. template, typename _Allocator = std::allocator<_CharT>> bool std::basic_string< _CharT, _Traits, _Alloc >::empty () const [inline], [noexcept] Returns true if the string is empty. Equivalent to *this == ''. template basic_string< _CharT, _Traits, _Alloc >::iterator std::basic_string< _CharT, _Traits, _Alloc >::erase (iterator __first, iterator __last) [inherited] Remove a range of characters. Parameters __first Iterator referencing the first character to remove. __last Iterator referencing the end of the range. Returns Iterator referencing location of first after removal. Removes the characters in the range [first,last) from this string. The value of the string doesn't change if an error is thrown. References std::forward(). template iterator std::basic_string< _CharT, _Traits, _Alloc >::erase (iterator __position) [inline], [inherited] Remove one character. Parameters __position Iterator referencing the character to remove. Returns iterator referencing same location after removal. Removes the character at __position from this string. The value of the string doesn't change if an error is thrown. References std::forward(). template, typename _Allocator = std::allocator<_CharT>> basic_string< _CharT, _Traits, _Alloc >::size_type std::basic_string< _CharT, _Traits, _Alloc >::find (_CharT __c, size_type __pos = 0) const [noexcept] Find position of a character. Parameters __c Character to locate. __pos Index of character to search from (default 0). Returns Index of first occurrence. Starting from __pos, searches forward for __c within this string. If found, returns the index where it was found. If not found, returns npos. template, typename _Allocator = std::allocator<_CharT>> basic_string< _CharT, _Traits, _Alloc >::size_type std::basic_string< _CharT, _Traits, _Alloc >::find (const _CharT * __s, size_type __pos, size_type __n) const [noexcept] Find position of a C substring. Parameters __s C string to locate. __pos Index of character to search from. __n Number of characters from s to search for. Returns Index of start of first occurrence. Starting from __pos, searches forward for the first __n characters in __s within this string. If found, returns the index where it begins. If not found, returns npos. template, typename _Allocator = std::allocator<_CharT>> size_type std::basic_string< _CharT, _Traits, _Alloc >::find (const _CharT * __s, size_type __pos = 0) const [inline], [noexcept] Find position of a C string. Parameters __s C string to locate. __pos Index of character to search from (default 0). Returns Index of start of first occurrence. Starting from __pos, searches forward for the value of __s within this string. If found, returns the index where it begins. If not found, returns npos. template, typename _Allocator = std::allocator<_CharT>> template _If_sv< _Tp, size_type > std::basic_string< _CharT, _Traits, _Alloc >::find (const _Tp & __svt, size_type __pos = 0) const [inline], [noexcept] Find position of a string_view. Parameters __svt The object convertible to string_view to locate. __pos Index of character to search from (default 0). Returns Index of start of first occurrence. template size_type std::basic_string< _CharT, _Traits, _Alloc >::find (const basic_string< _CharT, _Traits, _Alloc > & __str, size_type __pos = 0) const [inline], [noexcept], [inherited] Find position of a string. Parameters __str String to locate. __pos Index of character to search from (default 0). Returns Index of start of first occurrence. Starting from __pos, searches forward for value of __str within this string. If found, returns the index where it begins. If not found, returns npos. References std::basic_string< _CharT, _Traits, _Alloc >::data(), std::basic_string< _CharT, _Traits, _Alloc >::find(), and std::forward(). template, typename _Allocator = std::allocator<_CharT>> size_type std::basic_string< _CharT, _Traits, _Alloc >::find (const basic_string< _CharT, _Traits, _Allocator > & __str, size_type __pos = 0) const [inline], [noexcept] Find position of a string. Parameters __str String to locate. __pos Index of character to search from (default 0). Returns Index of start of first occurrence. Starting from __pos, searches forward for value of __str within this string. If found, returns the index where it begins. If not found, returns npos. template, typename _Allocator = std::allocator<_CharT>> basic_string< _CharT, _Traits, _Alloc >::size_type std::basic_string< _CharT, _Traits, _Alloc >::find_first_not_of (_CharT __c, size_type __pos = 0) const [noexcept] Find position of a different character. Parameters __c Character to avoid. __pos Index of character to search from (default 0). Returns Index of first occurrence. Starting from __pos, searches forward for a character other than __c within this string. If found, returns the index where it was found. If not found, returns npos. template, typename _Allocator = std::allocator<_CharT>> basic_string< _CharT, _Traits, _Alloc >::size_type std::basic_string< _CharT, _Traits, _Alloc >::find_first_not_of (const _CharT * __s, size_type __pos, size_type __n) const [noexcept] Find position of a character not in C substring. Parameters __s C string containing characters to avoid. __pos Index of character to search from. __n Number of characters from __s to consider. Returns Index of first occurrence. Starting from __pos, searches forward for a character not contained in the first __n characters of __s within this string. If found, returns the index where it was found. If not found, returns npos. template, typename _Allocator = std::allocator<_CharT>> size_type std::basic_string< _CharT, _Traits, _Alloc >::find_first_not_of (const _CharT * __s, size_type __pos = 0) const [inline], [noexcept] Find position of a character not in C string. Parameters __s C string containing characters to avoid. __pos Index of character to search from (default 0). Returns Index of first occurrence. Starting from __pos, searches forward for a character not contained in __s within this string. If found, returns the index where it was found. If not found, returns npos. template, typename _Allocator = std::allocator<_CharT>> template _If_sv< _Tp, size_type > std::basic_string< _CharT, _Traits, _Alloc >::find_first_not_of (const _Tp & __svt, size_type __pos = 0) const [inline], [noexcept] Find position of a character not in a string_view. Parameters __svt An object convertible to string_view containing characters to avoid. __pos Index of character to search from (default 0). Returns Index of first occurrence. template size_type std::basic_string< _CharT, _Traits, _Alloc >::find_first_not_of (const basic_string< _CharT, _Traits, _Alloc > & __str, size_type __pos = 0) const [inline], [noexcept], [inherited] Find position of a character not in string. Parameters __str String containing characters to avoid. __pos Index of character to search from (default 0). Returns Index of first occurrence. Starting from __pos, searches forward for a character not contained in __str within this string. If found, returns the index where it was found. If not found, returns npos. References std::basic_string< _CharT, _Traits, _Alloc >::data(), std::basic_string< _CharT, _Traits, _Alloc >::find_first_not_of(), and std::forward(). Referenced by std::basic_string< _CharT, _Traits, _Alloc >::find_first_not_of(), std::basic_string< _CharT, _Traits, _Alloc >::find_first_not_of(), and std::basic_string< _CharT, _Traits, _Alloc >::find_first_not_of(). template, typename _Allocator = std::allocator<_CharT>> size_type std::basic_string< _CharT, _Traits, _Alloc >::find_first_not_of (const basic_string< _CharT, _Traits, _Allocator > & __str, size_type __pos = 0) const [inline], [noexcept] Find position of a character not in string. Parameters __str String containing characters to avoid. __pos Index of character to search from (default 0). Returns Index of first occurrence. Starting from __pos, searches forward for a character not contained in __str within this string. If found, returns the index where it was found. If not found, returns npos. template, typename _Allocator = std::allocator<_CharT>> size_type std::basic_string< _CharT, _Traits, _Alloc >::find_first_of (_CharT __c, size_type __pos = 0) const [inline], [noexcept] Find position of a character. Parameters __c Character to locate. __pos Index of character to search from (default 0). Returns Index of first occurrence. Starting from __pos, searches forward for the character __c within this string. If found, returns the index where it was found. If not found, returns npos. Note: equivalent to find(__c, __pos). template, typename _Allocator = std::allocator<_CharT>> basic_string< _CharT, _Traits, _Alloc >::size_type std::basic_string< _CharT, _Traits, _Alloc >::find_first_of (const _CharT * __s, size_type __pos, size_type __n) const [noexcept] Find position of a character of C substring. Parameters __s String containing characters to locate. __pos Index of character to search from. __n Number of characters from s to search for. Returns Index of first occurrence. Starting from __pos, searches forward for one of the first __n characters of __s within this string. If found, returns the index where it was found. If not found, returns npos. template, typename _Allocator = std::allocator<_CharT>> size_type std::basic_string< _CharT, _Traits, _Alloc >::find_first_of (const _CharT * __s, size_type __pos = 0) const [inline], [noexcept] Find position of a character of C string. Parameters __s String containing characters to locate. __pos Index of character to search from (default 0). Returns Index of first occurrence. Starting from __pos, searches forward for one of the characters of __s within this string. If found, returns the index where it was found. If not found, returns npos. template, typename _Allocator = std::allocator<_CharT>> template _If_sv< _Tp, size_type > std::basic_string< _CharT, _Traits, _Alloc >::find_first_of (const _Tp & __svt, size_type __pos = 0) const [inline], [noexcept] Find position of a character of a string_view. Parameters __svt An object convertible to string_view containing characters to locate. __pos Index of character to search from (default 0). Returns Index of first occurrence. template size_type std::basic_string< _CharT, _Traits, _Alloc >::find_first_of (const basic_string< _CharT, _Traits, _Alloc > & __str, size_type __pos = 0) const [inline], [noexcept], [inherited] Find position of a character of string. Parameters __str String containing characters to locate. __pos Index of character to search from (default 0). Returns Index of first occurrence. Starting from __pos, searches forward for one of the characters of __str within this string. If found, returns the index where it was found. If not found, returns npos. References std::basic_string< _CharT, _Traits, _Alloc >::data(), std::basic_string< _CharT, _Traits, _Alloc >::find_first_of(), and std::forward(). Referenced by std::basic_string< _CharT, _Traits, _Alloc >::find_first_of(), std::basic_string< _CharT, _Traits, _Alloc >::find_first_of(), and std::basic_string< _CharT, _Traits, _Alloc >::find_first_of(). template, typename _Allocator = std::allocator<_CharT>> size_type std::basic_string< _CharT, _Traits, _Alloc >::find_first_of (const basic_string< _CharT, _Traits, _Allocator > & __str, size_type __pos = 0) const [inline], [noexcept] Find position of a character of string. Parameters __str String containing characters to locate. __pos Index of character to search from (default 0). Returns Index of first occurrence. Starting from __pos, searches forward for one of the characters of __str within this string. If found, returns the index where it was found. If not found, returns npos. template, typename _Allocator = std::allocator<_CharT>> basic_string< _CharT, _Traits, _Alloc >::size_type std::basic_string< _CharT, _Traits, _Alloc >::find_last_not_of (_CharT __c, size_type __pos = npos) const [noexcept] Find last position of a different character. Parameters __c Character to avoid. __pos Index of character to search back from (default end). Returns Index of last occurrence. Starting from __pos, searches backward for a character other than __c within this string. If found, returns the index where it was found. If not found, returns npos. template, typename _Allocator = std::allocator<_CharT>> basic_string< _CharT, _Traits, _Alloc >::size_type std::basic_string< _CharT, _Traits, _Alloc >::find_last_not_of (const _CharT * __s, size_type __pos, size_type __n) const [noexcept] Find last position of a character not in C substring. Parameters __s C string containing characters to avoid. __pos Index of character to search back from. __n Number of characters from s to consider. Returns Index of last occurrence. Starting from __pos, searches backward for a character not contained in the first __n characters of __s within this string. If found, returns the index where it was found. If not found, returns npos. template, typename _Allocator = std::allocator<_CharT>> size_type std::basic_string< _CharT, _Traits, _Alloc >::find_last_not_of (const _CharT * __s, size_type __pos = npos) const [inline], [noexcept] Find last position of a character not in C string. Parameters __s C string containing characters to avoid. __pos Index of character to search back from (default end). Returns Index of last occurrence. Starting from __pos, searches backward for a character not contained in __s within this string. If found, returns the index where it was found. If not found, returns npos. template, typename _Allocator = std::allocator<_CharT>> template _If_sv< _Tp, size_type > std::basic_string< _CharT, _Traits, _Alloc >::find_last_not_of (const _Tp & __svt, size_type __pos = npos) const [inline], [noexcept] Find last position of a character not in a string_view. Parameters __svt An object convertible to string_view containing characters to avoid. __pos Index of character to search back from (default end). Returns Index of last occurrence. template size_type std::basic_string< _CharT, _Traits, _Alloc >::find_last_not_of (const basic_string< _CharT, _Traits, _Alloc > & __str, size_type __pos = npos) const [inline], [noexcept], [inherited] Find last position of a character not in string. Parameters __str String containing characters to avoid. __pos Index of character to search back from (default end). Returns Index of last occurrence. Starting from __pos, searches backward for a character not contained in __str within this string. If found, returns the index where it was found. If not found, returns npos. References std::basic_string< _CharT, _Traits, _Alloc >::data(), std::basic_string< _CharT, _Traits, _Alloc >::find_last_not_of(), and std::forward(). Referenced by std::basic_string< _CharT, _Traits, _Alloc >::find_last_not_of(), std::basic_string< _CharT, _Traits, _Alloc >::find_last_not_of(), and std::basic_string< _CharT, _Traits, _Alloc >::find_last_not_of(). template, typename _Allocator = std::allocator<_CharT>> size_type std::basic_string< _CharT, _Traits, _Alloc >::find_last_not_of (const basic_string< _CharT, _Traits, _Allocator > & __str, size_type __pos = npos) const [inline], [noexcept] Find last position of a character not in string. Parameters __str String containing characters to avoid. __pos Index of character to search back from (default end). Returns Index of last occurrence. Starting from __pos, searches backward for a character not contained in __str within this string. If found, returns the index where it was found. If not found, returns npos. template, typename _Allocator = std::allocator<_CharT>> size_type std::basic_string< _CharT, _Traits, _Alloc >::find_last_of (_CharT __c, size_type __pos = npos) const [inline], [noexcept] Find last position of a character. Parameters __c Character to locate. __pos Index of character to search back from (default end). Returns Index of last occurrence. Starting from __pos, searches backward for __c within this string. If found, returns the index where it was found. If not found, returns npos. Note: equivalent to rfind(__c, __pos). template, typename _Allocator = std::allocator<_CharT>> basic_string< _CharT, _Traits, _Alloc >::size_type std::basic_string< _CharT, _Traits, _Alloc >::find_last_of (const _CharT * __s, size_type __pos, size_type __n) const [noexcept] Find last position of a character of C substring. Parameters __s C string containing characters to locate. __pos Index of character to search back from. __n Number of characters from s to search for. Returns Index of last occurrence. Starting from __pos, searches backward for one of the first __n characters of __s within this string. If found, returns the index where it was found. If not found, returns npos. template, typename _Allocator = std::allocator<_CharT>> size_type std::basic_string< _CharT, _Traits, _Alloc >::find_last_of (const _CharT * __s, size_type __pos = npos) const [inline], [noexcept] Find last position of a character of C string. Parameters __s C string containing characters to locate. __pos Index of character to search back from (default end). Returns Index of last occurrence. Starting from __pos, searches backward for one of the characters of __s within this string. If found, returns the index where it was found. If not found, returns npos. template, typename _Allocator = std::allocator<_CharT>> template _If_sv< _Tp, size_type > std::basic_string< _CharT, _Traits, _Alloc >::find_last_of (const _Tp & __svt, size_type __pos = npos) const [inline], [noexcept] Find last position of a character of string. Parameters __svt An object convertible to string_view containing characters to locate. __pos Index of character to search back from (default end). Returns Index of last occurrence. template size_type std::basic_string< _CharT, _Traits, _Alloc >::find_last_of (const basic_string< _CharT, _Traits, _Alloc > & __str, size_type __pos = npos) const [inline], [noexcept], [inherited] Find last position of a character of string. Parameters __str String containing characters to locate. __pos Index of character to search back from (default end). Returns Index of last occurrence. Starting from __pos, searches backward for one of the characters of __str within this string. If found, returns the index where it was found. If not found, returns npos. References std::basic_string< _CharT, _Traits, _Alloc >::data(), std::basic_string< _CharT, _Traits, _Alloc >::find_last_of(), and std::forward(). Referenced by std::basic_string< _CharT, _Traits, _Alloc >::find_last_of(), std::basic_string< _CharT, _Traits, _Alloc >::find_last_of(), and std::basic_string< _CharT, _Traits, _Alloc >::find_last_of(). template, typename _Allocator = std::allocator<_CharT>> size_type std::basic_string< _CharT, _Traits, _Alloc >::find_last_of (const basic_string< _CharT, _Traits, _Allocator > & __str, size_type __pos = npos) const [inline], [noexcept] Find last position of a character of string. Parameters __str String containing characters to locate. __pos Index of character to search back from (default end). Returns Index of last occurrence. Starting from __pos, searches backward for one of the characters of __str within this string. If found, returns the index where it was found. If not found, returns npos. template, typename _Allocator = std::allocator<_CharT>> reference std::basic_string< _CharT, _Traits, _Alloc >::front () [inline] Returns a read/write reference to the data at the first element of the string. template, typename _Allocator = std::allocator<_CharT>> const_reference std::basic_string< _CharT, _Traits, _Alloc >::front () const [inline], [noexcept] Returns a read-only (constant) reference to the data at the first element of the string. template, typename _Allocator = std::allocator<_CharT>> allocator_type std::basic_string< _CharT, _Traits, _Alloc >::get_allocator () const [inline], [noexcept] Return copy of allocator used to construct this string. template iterator std::basic_string< _CharT, _Traits, _Alloc >::insert (iterator __p, _CharT __c) [inline], [inherited] Insert one character. Parameters __p Iterator referencing position in string to insert at. __c The character to insert. Returns Iterator referencing newly inserted char. Exceptions std::length_error If new length exceeds max_size(). Inserts character __c at position referenced by __p. If adding character causes the length to exceed max_size(), length_error is thrown. If __p is beyond end of string, out_of_range is thrown. The value of the string doesn't change if an error is thrown. References std::forward(). template template void std::basic_string< _CharT, _Traits, _Alloc >::insert (iterator __p, _InputIterator __beg, _InputIterator __end) [inline], [inherited] Insert a range of characters. Parameters __p Iterator referencing location in string to insert at. __beg Start of range. __end End of range. Exceptions std::length_error If new length exceeds max_size(). Inserts characters in range [__beg,__end). If adding characters causes the length to exceed max_size(), length_error is thrown. The value of the string doesn't change if an error is thrown. References std::forward(), and std::basic_string< _CharT, _Traits, _Alloc >::replace(). template void std::basic_string< _CharT, _Traits, _Alloc >::insert (iterator __p, initializer_list< _CharT > __l) [inline], [inherited] Insert an initializer_list of characters. Parameters __p Iterator referencing location in string to insert at. __l The initializer_list of characters to insert. Exceptions std::length_error If new length exceeds max_size(). References std::forward(), and std::basic_string< _CharT, _Traits, _Alloc >::insert(). template void std::basic_string< _CharT, _Traits, _Alloc >::insert (iterator __p, size_type __n, _CharT __c) [inline], [inherited] Insert multiple characters. Parameters __p Iterator referencing location in string to insert at. __n Number of characters to insert __c The character to insert. Exceptions std::length_error If new length exceeds max_size(). Inserts __n copies of character __c starting at the position referenced by iterator __p. If adding characters causes the length to exceed max_size(), length_error is thrown. The value of the string doesn't change if an error is thrown. References std::basic_string< _CharT, _Traits, _Alloc >::replace(). Referenced by std::basic_string< _CharT, _Traits, _Alloc >::insert(), std::basic_string< _CharT, _Traits, _Alloc >::insert(), std::basic_string< _CharT, _Traits, _Alloc >::insert(), std::basic_string< _CharT, _Traits, _Alloc >::insert(), and std::basic_string< _CharT, _Traits, _Alloc >::insert(). template template _If_sv< _Tp, basic_string & > std::basic_string< _CharT, _Traits, _Alloc >::insert (size_type __pos, const _Tp & __svt) [inline], [inherited] Insert a string_view. Parameters __pos Position in string to insert at. __svt The object convertible to string_view to insert. Returns Reference to this string. References std::forward(), and std::basic_string< _CharT, _Traits, _Alloc >::insert(). template template _If_sv< _Tp, basic_string & > std::basic_string< _CharT, _Traits, _Alloc >::insert (size_type __pos1, const _Tp & __svt, size_type __pos2, size_type __n = npos) [inline], [inherited] Insert a string_view. Parameters __pos1 Position in string to insert at. __svt The object convertible to string_view to insert from. __pos2 Position in string_view to insert from. __n The number of characters to insert. Returns Reference to this string. References std::forward(), and std::basic_string< _CharT, _Traits, _Alloc >::replace(). template basic_string & std::basic_string< _CharT, _Traits, _Alloc >::insert (size_type __pos1, const basic_string< _CharT, _Traits, _Alloc > & __str) [inline], [inherited] Insert value of a string. Parameters __pos1 Position in string to insert at. __str The string to insert. Returns Reference to this string. Exceptions std::length_error If new length exceeds max_size(). Inserts value of __str starting at __pos1. If adding characters causes the length to exceed max_size(), length_error is thrown. The value of the string doesn't change if an error is thrown. References std::forward(), and std::basic_string< _CharT, _Traits, _Alloc >::insert(). template basic_string & std::basic_string< _CharT, _Traits, _Alloc >::insert (size_type __pos1, const basic_string< _CharT, _Traits, _Alloc > & __str, size_type __pos2, size_type __n = npos) [inline], [inherited] Insert a substring. Parameters __pos1 Position in string to insert at. __str The string to insert. __pos2 Start of characters in str to insert. __n Number of characters to insert. Returns Reference to this string. Exceptions std::length_error If new length exceeds max_size(). std::out_of_range If pos1 > size() or __pos2 > str.size(). Starting at pos1, insert __n character of __str beginning with __pos2. If adding characters causes the length to exceed max_size(), length_error is thrown. If __pos1 is beyond the end of this string or __pos2 is beyond the end of __str, out_of_range is thrown. The value of the string doesn't change if an error is thrown. References std::forward(), and std::basic_string< _CharT, _Traits, _Alloc >::insert(). template, typename _Allocator = std::allocator<_CharT>> size_type std::basic_string< _CharT, _Traits, _Alloc >::length () const [inline], [noexcept] Returns the number of characters in the string, not including any null- termination. template, typename _Allocator = std::allocator<_CharT>> size_type std::basic_string< _CharT, _Traits, _Alloc >::max_size () const [inline], [noexcept] Returns the size() of the largest possible string. template std::basic_string< _CharT, _Traits, _Alloc >::operator __sv_type () const [inline], [noexcept], [inherited] Convert to a string_view. Returns A string_view. References std::basic_string< _CharT, _Traits, _Alloc >::data(), and std::basic_string< _CharT, _Traits, _Alloc >::size(). template template _If_sv< _Tp, basic_string & > std::basic_string< _CharT, _Traits, _Alloc >::operator+= (const _Tp & __svt) [inline], [inherited] Append a string_view. Parameters __svt The object convertible to string_view to be appended. Returns Reference to this string. References std::basic_string< _CharT, _Traits, _Alloc >::append(). template basic_string & std::basic_string< _CharT, _Traits, _Alloc >::operator+= (const basic_string< _CharT, _Traits, _Alloc > & __str) [inline], [inherited] Append a string to this string. Parameters __str The string to append. Returns Reference to this string. References std::basic_string< _CharT, _Traits, _Alloc >::append(). template template _If_sv< _Tp, basic_string & > std::basic_string< _CharT, _Traits, _Alloc >::replace (const_iterator __i1, const_iterator __i2, const _Tp & __svt) [inline], [inherited] Replace range of characters with string_view. Parameters __i1 An iterator referencing the start position to replace at. __i2 An iterator referencing the end position for the replace. __svt The object convertible to string_view to insert from. Returns Reference to this string. References std::basic_string< _CharT, _Traits, _Alloc >::begin(), std::forward(), and std::basic_string< _CharT, _Traits, _Alloc >::replace(). template template basic_string & std::basic_string< _CharT, _Traits, _Alloc >::replace (iterator __i1, iterator __i2, _InputIterator __k1, _InputIterator __k2) [inline], [inherited] Replace range of characters with range. Parameters __i1 Iterator referencing start of range to replace. __i2 Iterator referencing end of range to replace. __k1 Iterator referencing start of range to insert. __k2 Iterator referencing end of range to insert. Returns Reference to this string. Exceptions std::length_error If new length exceeds max_size(). Removes the characters in the range [__i1,__i2). In place, characters in the range [__k1,__k2) are inserted. If the length of result exceeds max_size(), length_error is thrown. The value of the string doesn't change if an error is thrown. References std::forward(). template basic_string & std::basic_string< _CharT, _Traits, _Alloc >::replace (iterator __i1, iterator __i2, const _CharT * __s) [inline], [inherited] Replace range of characters with C string. Parameters __i1 Iterator referencing start of range to replace. __i2 Iterator referencing end of range to replace. __s C string value to insert. Returns Reference to this string. Exceptions std::length_error If new length exceeds max_size(). Removes the characters in the range [__i1,__i2). In place, the characters of __s are inserted. If the length of result exceeds max_size(), length_error is thrown. The value of the string doesn't change if an error is thrown. References std::forward(), and std::basic_string< _CharT, _Traits, _Alloc >::replace(). template basic_string & std::basic_string< _CharT, _Traits, _Alloc >::replace (iterator __i1, iterator __i2, const _CharT * __s, size_type __n) [inline], [inherited] Replace range of characters with C substring. Parameters __i1 Iterator referencing start of range to replace. __i2 Iterator referencing end of range to replace. __s C string value to insert. __n Number of characters from s to insert. Returns Reference to this string. Exceptions std::length_error If new length exceeds max_size(). Removes the characters in the range [__i1,__i2). In place, the first __n characters of __s are inserted. If the length of result exceeds max_size(), length_error is thrown. The value of the string doesn't change if an error is thrown. References std::forward(), and std::basic_string< _CharT, _Traits, _Alloc >::replace(). template basic_string & std::basic_string< _CharT, _Traits, _Alloc >::replace (iterator __i1, iterator __i2, const basic_string< _CharT, _Traits, _Alloc > & __str) [inline], [inherited] Replace range of characters with string. Parameters __i1 Iterator referencing start of range to replace. __i2 Iterator referencing end of range to replace. __str String value to insert. Returns Reference to this string. Exceptions std::length_error If new length exceeds max_size(). Removes the characters in the range [__i1,__i2). In place, the value of __str is inserted. If the length of result exceeds max_size(), length_error is thrown. The value of the string doesn't change if an error is thrown. References std::forward(), and std::basic_string< _CharT, _Traits, _Alloc >::replace(). template basic_string & std::basic_string< _CharT, _Traits, _Alloc >::replace (iterator __i1, iterator __i2, initializer_list< _CharT > __l) [inline], [inherited] Replace range of characters with initializer_list. Parameters __i1 Iterator referencing start of range to replace. __i2 Iterator referencing end of range to replace. __l The initializer_list of characters to insert. Returns Reference to this string. Exceptions std::length_error If new length exceeds max_size(). Removes the characters in the range [__i1,__i2). In place, characters in the range [__k1,__k2) are inserted. If the length of result exceeds max_size(), length_error is thrown. The value of the string doesn't change if an error is thrown. References std::forward(), and std::basic_string< _CharT, _Traits, _Alloc >::replace(). template basic_string & std::basic_string< _CharT, _Traits, _Alloc >::replace (iterator __i1, iterator __i2, size_type __n, _CharT __c) [inline], [inherited] Replace range of characters with multiple characters. Parameters __i1 Iterator referencing start of range to replace. __i2 Iterator referencing end of range to replace. __n Number of characters to insert. __c Character to insert. Returns Reference to this string. Exceptions std::length_error If new length exceeds max_size(). Removes the characters in the range [__i1,__i2). In place, __n copies of __c are inserted. If the length of result exceeds max_size(), length_error is thrown. The value of the string doesn't change if an error is thrown. References std::forward(). template template _If_sv< _Tp, basic_string & > std::basic_string< _CharT, _Traits, _Alloc >::replace (size_type __pos, size_type __n, const _Tp & __svt) [inline], [inherited] Replace range of characters with string_view. Parameters __pos The position to replace at. __n The number of characters to replace. __svt The object convertible to string_view to insert. Returns Reference to this string. References std::forward(), and std::basic_string< _CharT, _Traits, _Alloc >::replace(). template basic_string & std::basic_string< _CharT, _Traits, _Alloc >::replace (size_type __pos, size_type __n, const basic_string< _CharT, _Traits, _Alloc > & __str) [inline], [inherited] Replace characters with value from another string. Parameters __pos Index of first character to replace. __n Number of characters to be replaced. __str String to insert. Returns Reference to this string. Exceptions std::out_of_range If pos is beyond the end of this string. std::length_error If new length exceeds max_size(). Removes the characters in the range [__pos,__pos+__n) from this string. In place, the value of __str is inserted. If __pos is beyond end of string, out_of_range is thrown. If the length of the result exceeds max_size(), length_error is thrown. The value of the string doesn't change if an error is thrown. References std::forward(), and std::basic_string< _CharT, _Traits, _Alloc >::replace(). Referenced by std::basic_string< _CharT, _Traits, _Alloc >::append(), std::basic_string< _CharT, _Traits, _Alloc >::assign(), std::basic_string< _CharT, _Traits, _Alloc >::insert(), std::basic_string< _CharT, _Traits, _Alloc >::insert(), std::basic_string< _CharT, _Traits, _Alloc >::insert(), std::basic_string< _CharT, _Traits, _Alloc >::replace(), std::basic_string< _CharT, _Traits, _Alloc >::replace(), std::basic_string< _CharT, _Traits, _Alloc >::replace(), std::basic_string< _CharT, _Traits, _Alloc >::replace(), std::basic_string< _CharT, _Traits, _Alloc >::replace(), std::basic_string< _CharT, _Traits, _Alloc >::replace(), std::basic_string< _CharT, _Traits, _Alloc >::replace(), std::basic_string< _CharT, _Traits, _Alloc >::replace(), std::basic_string< _CharT, _Traits, _Alloc >::replace(), and std::basic_string< _CharT, _Traits, _Alloc >::replace(). template template _If_sv< _Tp, basic_string & > std::basic_string< _CharT, _Traits, _Alloc >::replace (size_type __pos1, size_type __n1, const _Tp & __svt, size_type __pos2, size_type __n2 = npos) [inline], [inherited] Replace range of characters with string_view. Parameters __pos1 The position to replace at. __n1 The number of characters to replace. __svt The object convertible to string_view to insert from. __pos2 The position in the string_view to insert from. __n2 The number of characters to insert. Returns Reference to this string. References std::forward(), and std::basic_string< _CharT, _Traits, _Alloc >::replace(). template basic_string & std::basic_string< _CharT, _Traits, _Alloc >::replace (size_type __pos1, size_type __n1, const basic_string< _CharT, _Traits, _Alloc > & __str, size_type __pos2, size_type __n2 = npos) [inline], [inherited] Replace characters with value from another string. Parameters __pos1 Index of first character to replace. __n1 Number of characters to be replaced. __str String to insert. __pos2 Index of first character of str to use. __n2 Number of characters from str to use. Returns Reference to this string. Exceptions std::out_of_range If __pos1 > size() or __pos2 > __str.size(). std::length_error If new length exceeds max_size(). Removes the characters in the range [__pos1,__pos1 + n) from this string. In place, the value of __str is inserted. If __pos is beyond end of string, out_of_range is thrown. If the length of the result exceeds max_size(), length_error is thrown. The value of the string doesn't change if an error is thrown. References std::forward(), and std::basic_string< _CharT, _Traits, _Alloc >::replace(). template, typename _Allocator = std::allocator<_CharT>> void std::basic_string< _CharT, _Traits, _Alloc >::reserve () Equivalent to shrink_to_fit(). template, typename _Allocator = std::allocator<_CharT>> void std::basic_string< _CharT, _Traits, _Alloc >::reserve (size_type __res_arg) Attempt to preallocate enough memory for specified number of characters. Parameters __res_arg Number of characters required. Exceptions std::length_error If __res_arg exceeds max_size(). This function attempts to reserve enough memory for the string to hold the specified number of characters. If the number requested is more than max_size(), length_error is thrown. The advantage of this function is that if optimal code is a necessity and the user can determine the string length that will be required, the user can reserve the memory in advance, and thus prevent a possible reallocation of memory and copying of string data. template, typename _Allocator = std::allocator<_CharT>> basic_string< _CharT, _Traits, _Alloc >::size_type std::basic_string< _CharT, _Traits, _Alloc >::rfind (_CharT __c, size_type __pos = npos) const [noexcept] Find last position of a character. Parameters __c Character to locate. __pos Index of character to search back from (default end). Returns Index of last occurrence. Starting from __pos, searches backward for __c within this string. If found, returns the index where it was found. If not found, returns npos. template, typename _Allocator = std::allocator<_CharT>> basic_string< _CharT, _Traits, _Alloc >::size_type std::basic_string< _CharT, _Traits, _Alloc >::rfind (const _CharT * __s, size_type __pos, size_type __n) const [noexcept] Find last position of a C substring. Parameters __s C string to locate. __pos Index of character to search back from. __n Number of characters from s to search for. Returns Index of start of last occurrence. Starting from __pos, searches backward for the first __n characters in __s within this string. If found, returns the index where it begins. If not found, returns npos. template, typename _Allocator = std::allocator<_CharT>> size_type std::basic_string< _CharT, _Traits, _Alloc >::rfind (const _CharT * __s, size_type __pos = npos) const [inline], [noexcept] Find last position of a C string. Parameters __s C string to locate. __pos Index of character to start search at (default end). Returns Index of start of last occurrence. Starting from __pos, searches backward for the value of __s within this string. If found, returns the index where it begins. If not found, returns npos. template, typename _Allocator = std::allocator<_CharT>> template _If_sv< _Tp, size_type > std::basic_string< _CharT, _Traits, _Alloc >::rfind (const _Tp & __svt, size_type __pos = npos) const [inline], [noexcept] Find last position of a string_view. Parameters __svt The object convertible to string_view to locate. __pos Index of character to search back from (default end). Returns Index of start of last occurrence. template size_type std::basic_string< _CharT, _Traits, _Alloc >::rfind (const basic_string< _CharT, _Traits, _Alloc > & __str, size_type __pos = npos) const [inline], [noexcept], [inherited] Find last position of a string. Parameters __str String to locate. __pos Index of character to search back from (default end). Returns Index of start of last occurrence. Starting from __pos, searches backward for value of __str within this string. If found, returns the index where it begins. If not found, returns npos. References std::basic_string< _CharT, _Traits, _Alloc >::data(), std::forward(), and std::basic_string< _CharT, _Traits, _Alloc >::rfind(). Referenced by std::basic_string< _CharT, _Traits, _Alloc >::find_last_of(), std::basic_string< _CharT, _Traits, _Alloc >::rfind(), std::basic_string< _CharT, _Traits, _Alloc >::rfind(), and std::basic_string< _CharT, _Traits, _Alloc >::rfind(). template, typename _Allocator = std::allocator<_CharT>> size_type std::basic_string< _CharT, _Traits, _Alloc >::rfind (const basic_string< _CharT, _Traits, _Allocator > & __str, size_type __pos = npos) const [inline], [noexcept] Find last position of a string. Parameters __str String to locate. __pos Index of character to search back from (default end). Returns Index of start of last occurrence. Starting from __pos, searches backward for value of __str within this string. If found, returns the index where it begins. If not found, returns npos. template, typename _Allocator = std::allocator<_CharT>> size_type std::basic_string< _CharT, _Traits, _Alloc >::size () const [inline], [noexcept] Returns the number of characters in the string, not including any null- termination. template void std::basic_string< _CharT, _Traits, _Alloc >::swap (basic_string< _CharT, _Traits, _Alloc > & __s) [noexcept], [inherited] Swap contents with another string. Parameters __s String to swap with. Exchanges the contents of this string with that of __s in constant time. References std::forward(). Member Data Documentation template, typename _Allocator = std::allocator<_CharT>> const basic_string< _CharT, _Traits, _Alloc >::size_type std::basic_string< _CharT, _Traits, _Alloc >::npos [static] Value returned by various member functions when they fail. Author Generated automatically by Doxygen for libstdc++ from the source code. libstdc++ __gnu_debug::basic_string< _CharT, _Traits, _Allocator >(3)