libstdc++
__gnu_debug::basic_string< _CharT, _Traits, _Allocator > Class Template Reference
Inheritance diagram for __gnu_debug::basic_string< _CharT, _Traits, _Allocator >:
[legend]

Public Types

typedef _Allocator allocator_type
 
typedef __gnu_debug::_Safe_iterator< typename _Base::const_iterator, basic_stringconst_iterator
 
typedef _Base::const_pointer const_pointer
 
typedef _Base::const_reference const_reference
 
typedef std::reverse_iterator< const_iteratorconst_reverse_iterator
 
typedef _Base::difference_type difference_type
 
typedef __gnu_debug::_Safe_iterator< typename _Base::iterator, basic_stringiterator
 
typedef _Base::pointer pointer
 
typedef _Base::reference reference
 
typedef std::reverse_iterator< iteratorreverse_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<typename _InputIterator >
 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
 
void _M_invalidate_if (_Predicate __pred)
 
basic_string< _CharT, std::char_traits< _CharT >, std::allocator< _CharT > > & _M_replace_dispatch (iterator __i1, iterator __i2, _InputIterator __k1, _InputIterator __k2, __false_type)
 
void _M_swap (_Safe_container &__x) noexcept
 
void _M_transfer_from_if (_Safe_sequence &__from, _Predicate __pred)
 
_CharT * _S_construct (_InIterator __beg, _InIterator __end, const std::allocator< _CharT > &__a, forward_iterator_tag)
 
template<typename _InputIterator >
basic_stringappend (_InputIterator __first, _InputIterator __last)
 
basic_stringappend (const _CharT *__s)
 
basic_stringappend (const _CharT *__s, size_type __n)
 
_If_sv< _Tp, basic_string & > append (const _Tp &__svt)
 
_If_sv< _Tp, basic_string & > append (const _Tp &__svt, size_type __pos, size_type __n=npos)
 
basic_stringappend (const basic_string &__str)
 
basic_stringappend (const basic_string &__str)
 
basic_stringappend (const basic_string &__str, size_type __pos, size_type __n)
 
basic_stringappend (const basic_string &__str, size_type __pos, size_type __n=npos)
 
basic_stringappend (initializer_list< _CharT > __l)
 
basic_stringappend (size_type __n, _CharT __c)
 
template<typename _InputIterator >
basic_stringassign (_InputIterator __first, _InputIterator __last)
 
basic_stringassign (basic_string &&__str) noexcept(allocator_traits< std::allocator< _CharT > >::is_always_equal::value)
 
basic_stringassign (basic_string &&__x) noexcept(noexcept(std::declval< _Base & >().assign(std::move(__x))))
 
basic_stringassign (const _CharT *__s)
 
basic_stringassign (const _CharT *__s, size_type __n)
 
_If_sv< _Tp, basic_string & > assign (const _Tp &__svt)
 
_If_sv< _Tp, basic_string & > assign (const _Tp &__svt, size_type __pos, size_type __n=npos)
 
basic_stringassign (const basic_string &__str)
 
basic_stringassign (const basic_string &__str, size_type __pos, size_type __n)
 
basic_stringassign (const basic_string &__str, size_type __pos, size_type __n=npos)
 
basic_stringassign (const basic_string &__x)
 
basic_stringassign (size_type __n, _CharT __c)
 
basic_stringassign (std::initializer_list< _CharT > __l)
 
reference at (size_type __n)
 
reference at (size_type __n)
 
const_reference at (size_type __n) const
 
const_reference at (size_type __n) const
 
reference back ()
 
const_reference back () const noexcept
 
iterator begin ()
 
const_iterator begin () const noexcept
 
const _CharT * c_str () const noexcept
 
const _CharT * c_str () const noexcept
 
size_type capacity () const noexcept
 
const_iterator cbegin () const noexcept
 
const_iterator cbegin () const noexcept
 
const_iterator cend () const noexcept
 
const_iterator cend () const noexcept
 
void clear ()
 
int compare (const _CharT *__s) const
 
_If_sv< _Tp, int > compare (const _Tp &__svt) const noexcept(is_same< _Tp, __sv_type >::value)
 
int compare (const basic_string &__str) const
 
int compare (const basic_string &__str) const
 
_If_sv< _Tp, int > compare (size_type __pos, size_type __n, const _Tp &__svt) const noexcept(is_same< _Tp, __sv_type >::value)
 
int compare (size_type __pos, size_type __n, const basic_string &__str) const
 
int compare (size_type __pos1, size_type __n1, const _CharT *__s) const
 
int compare (size_type __pos1, size_type __n1, const _CharT *__s, size_type __n2) const
 
_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)
 
int compare (size_type __pos1, size_type __n1, const basic_string &__str) const
 
int compare (size_type __pos1, size_type __n1, const basic_string &__str, size_type __pos2, size_type __n2) const
 
int compare (size_type __pos1, size_type __n1, const basic_string &__str, size_type __pos2, size_type __n2=npos) const
 
size_type copy (_CharT *__s, size_type __n, size_type __pos=0) const
 
const_reverse_iterator crbegin () const noexcept
 
const_reverse_iterator crbegin () const noexcept
 
const_reverse_iterator crend () const noexcept
 
const_reverse_iterator crend () const noexcept
 
const _CharT * data () const noexcept
 
const _CharT * data () const noexcept
 
bool empty () const noexcept
 
iterator end ()
 
const_iterator end () const noexcept
 
iterator erase (__const_iterator __first, __const_iterator __last)
 
iterator erase (__const_iterator __position)
 
iterator erase (iterator __first, iterator __last)
 
iterator erase (iterator __position)
 
basic_stringerase (size_type __pos=0, size_type __n=_Base::npos)
 
size_type find (_CharT __c, size_type __pos=0) const noexcept
 
size_type find (const _CharT *__s, size_type __pos, size_type __n) const
 
size_type find (const _CharT *__s, size_type __pos=0) const
 
_If_sv< _Tp, size_type > find (const _Tp &__svt, size_type __pos=0) const noexcept(is_same< _Tp, __sv_type >::value)
 
size_type find (const basic_string &__str, size_type __pos=0) const noexcept
 
size_type find (const basic_string &__str, size_type __pos=0) const noexcept
 
size_type find_first_not_of (_CharT __c, size_type __pos=0) const noexcept
 
size_type find_first_not_of (const _CharT *__s, size_type __pos, size_type __n) const
 
size_type find_first_not_of (const _CharT *__s, size_type __pos=0) const
 
_If_sv< _Tp, size_type > find_first_not_of (const _Tp &__svt, size_type __pos=0) const noexcept(is_same< _Tp, __sv_type >::value)
 
size_type find_first_not_of (const basic_string &__str, size_type __pos=0) const noexcept
 
size_type find_first_not_of (const basic_string &__str, size_type __pos=0) const noexcept
 
size_type find_first_of (_CharT __c, size_type __pos=0) const noexcept
 
size_type find_first_of (const _CharT *__s, size_type __pos, size_type __n) const
 
size_type find_first_of (const _CharT *__s, size_type __pos=0) const
 
_If_sv< _Tp, size_type > find_first_of (const _Tp &__svt, size_type __pos=0) const noexcept(is_same< _Tp, __sv_type >::value)
 
size_type find_first_of (const basic_string &__str, size_type __pos=0) const noexcept
 
size_type find_first_of (const basic_string &__str, size_type __pos=0) const noexcept
 
size_type find_last_not_of (_CharT __c, size_type __pos=_Base::npos) const noexcept
 
size_type find_last_not_of (const _CharT *__s, size_type __pos, size_type __n) const
 
size_type find_last_not_of (const _CharT *__s, size_type __pos=_Base::npos) const
 
_If_sv< _Tp, size_type > find_last_not_of (const _Tp &__svt, size_type __pos=npos) const noexcept(is_same< _Tp, __sv_type >::value)
 
size_type find_last_not_of (const basic_string &__str, size_type __pos=_Base::npos) const noexcept
 
size_type find_last_not_of (const basic_string &__str, size_type __pos=npos) const noexcept
 
size_type find_last_of (_CharT __c, size_type __pos=_Base::npos) const noexcept
 
size_type find_last_of (const _CharT *__s, size_type __pos, size_type __n) const
 
size_type find_last_of (const _CharT *__s, size_type __pos=_Base::npos) const
 
_If_sv< _Tp, size_type > find_last_of (const _Tp &__svt, size_type __pos=npos) const noexcept(is_same< _Tp, __sv_type >::value)
 
size_type find_last_of (const basic_string &__str, size_type __pos=_Base::npos) const noexcept
 
size_type find_last_of (const basic_string &__str, size_type __pos=npos) const noexcept
 
reference front ()
 
const_reference front () const noexcept
 
allocator_type get_allocator () const noexcept
 
iterator insert (__const_iterator __p, _CharT __c)
 
template<typename _InputIterator >
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)
 
void insert (iterator __p, _InputIterator __beg, _InputIterator __end)
 
void insert (iterator __p, initializer_list< _CharT > __l)
 
void insert (iterator __p, size_type __n, _CharT __c)
 
basic_stringinsert (size_type __pos, const _CharT *__s)
 
basic_stringinsert (size_type __pos, const _CharT *__s, size_type __n)
 
_If_sv< _Tp, basic_string & > insert (size_type __pos, const _Tp &__svt)
 
basic_stringinsert (size_type __pos, size_type __n, _CharT __c)
 
_If_sv< _Tp, basic_string & > insert (size_type __pos1, const _Tp &__svt, size_type __pos2, size_type __n=npos)
 
basic_stringinsert (size_type __pos1, const basic_string &__str)
 
basic_stringinsert (size_type __pos1, const basic_string &__str)
 
basic_stringinsert (size_type __pos1, const basic_string &__str, size_type __pos2, size_type __n)
 
basic_stringinsert (size_type __pos1, const basic_string &__str, size_type __pos2, size_type __n=npos)
 
size_type length () const noexcept
 
size_type max_size () const noexcept
 
 operator __sv_type () const noexcept
 
basic_stringoperator+= (_CharT __c)
 
basic_stringoperator+= (const _CharT *__s)
 
_If_sv< _Tp, basic_string & > operator+= (const _Tp &__svt)
 
basic_stringoperator+= (const basic_string &__str)
 
basic_stringoperator+= (const basic_string &__str)
 
basic_stringoperator+= (std::initializer_list< _CharT > __l)
 
basic_stringoperator= (_CharT __c)
 
basic_stringoperator= (basic_string &&)=default
 
basic_stringoperator= (const _CharT *__s)
 
basic_stringoperator= (const basic_string &)=default
 
basic_stringoperator= (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<typename _InputIterator >
basic_stringreplace (__const_iterator __i1, __const_iterator __i2, _InputIterator __j1, _InputIterator __j2)
 
basic_stringreplace (__const_iterator __i1, __const_iterator __i2, const _CharT *__s)
 
basic_stringreplace (__const_iterator __i1, __const_iterator __i2, const _CharT *__s, size_type __n)
 
basic_stringreplace (__const_iterator __i1, __const_iterator __i2, const basic_string &__str)
 
basic_stringreplace (__const_iterator __i1, __const_iterator __i2, size_type __n, _CharT __c)
 
basic_stringreplace (__const_iterator __i1, __const_iterator __i2, std::initializer_list< _CharT > __l)
 
_If_sv< _Tp, basic_string & > replace (const_iterator __i1, const_iterator __i2, const _Tp &__svt)
 
basic_stringreplace (iterator __i1, iterator __i2, _CharT *__k1, _CharT *__k2)
 
basic_stringreplace (iterator __i1, iterator __i2, _InputIterator __k1, _InputIterator __k2)
 
basic_stringreplace (iterator __i1, iterator __i2, const _CharT *__k1, const _CharT *__k2)
 
basic_stringreplace (iterator __i1, iterator __i2, const _CharT *__s)
 
basic_stringreplace (iterator __i1, iterator __i2, const _CharT *__s, size_type __n)
 
basic_stringreplace (iterator __i1, iterator __i2, const basic_string &__str)
 
basic_stringreplace (iterator __i1, iterator __i2, const_iterator __k1, const_iterator __k2)
 
basic_stringreplace (iterator __i1, iterator __i2, initializer_list< _CharT > __l)
 
basic_stringreplace (iterator __i1, iterator __i2, iterator __k1, iterator __k2)
 
basic_stringreplace (iterator __i1, iterator __i2, size_type __n, _CharT __c)
 
_If_sv< _Tp, basic_string & > replace (size_type __pos, size_type __n, const _Tp &__svt)
 
basic_stringreplace (size_type __pos, size_type __n, const basic_string &__str)
 
basic_stringreplace (size_type __pos, size_type __n1, const _CharT *__s)
 
basic_stringreplace (size_type __pos, size_type __n1, const _CharT *__s, size_type __n2)
 
basic_stringreplace (size_type __pos, size_type __n1, size_type __n2, _CharT __c)
 
_If_sv< _Tp, basic_string & > replace (size_type __pos1, size_type __n1, const _Tp &__svt, size_type __pos2, size_type __n2=npos)
 
basic_stringreplace (size_type __pos1, size_type __n1, const basic_string &__str)
 
basic_stringreplace (size_type __pos1, size_type __n1, const basic_string &__str, size_type __pos2, size_type __n2)
 
basic_stringreplace (size_type __pos1, size_type __n1, const basic_string &__str, size_type __pos2, size_type __n2=npos)
 
void reserve ()
 
void reserve (size_type __res_arg)
 
void reserve (size_type __res_arg)
 
void resize (size_type __n)
 
void resize (size_type __n, _CharT __c)
 
size_type rfind (_CharT __c, size_type __pos=_Base::npos) const noexcept
 
size_type rfind (const _CharT *__s, size_type __pos, size_type __n) const
 
size_type rfind (const _CharT *__s, size_type __pos=_Base::npos) const
 
_If_sv< _Tp, size_type > rfind (const _Tp &__svt, size_type __pos=npos) const noexcept(is_same< _Tp, __sv_type >::value)
 
size_type rfind (const basic_string &__str, size_type __pos=_Base::npos) const noexcept
 
size_type rfind (const basic_string &__str, size_type __pos=npos) const noexcept
 
void shrink_to_fit () noexcept
 
size_type size () const noexcept
 
basic_string substr (size_type __pos=0, size_type __n=_Base::npos) const
 
void swap (basic_string &__s) noexcept(/*conditional */)
 
void swap (basic_string &__x) noexcept(/*conditional */)
 

Static Public Attributes

static const size_type npos
 

Protected Member Functions

_Safe_container_M_safe () noexcept
 

Friends

template<typename _ItT , typename _SeqT , typename _CatT >
class ::__gnu_debug::_Safe_iterator
 

Detailed Description

template<typename _CharT, typename _Traits = std::char_traits<_CharT>, typename _Allocator = std::allocator<_CharT>>
class __gnu_debug::basic_string< _CharT, _Traits, _Allocator >

Class std::basic_string with safety/checking/debug instrumentation.

Definition at line 94 of file debug/string.

Member Function Documentation

◆ _M_invalidate_if()

void __gnu_debug::_Safe_sequence< basic_string< _CharT, std::char_traits< _CharT >, std::allocator< _CharT > > >::_M_invalidate_if ( _Predicate  __pred)
inherited

Invalidates all iterators x that reference this sequence, are not singular, and for which __pred(x) returns true. __pred will be invoked with the normal iterators nested in the safe ones.

Definition at line 38 of file safe_sequence.tcc.

◆ _M_transfer_from_if()

void __gnu_debug::_Safe_sequence< basic_string< _CharT, std::char_traits< _CharT >, std::allocator< _CharT > > >::_M_transfer_from_if ( _Safe_sequence< basic_string< _CharT, std::char_traits< _CharT >, std::allocator< _CharT > > > &  __from,
_Predicate  __pred 
)
inherited

Transfers all iterators x that reference from sequence, are not singular, and for which __pred(x) returns true. __pred will be invoked with the normal iterators nested in the safe ones.

Definition at line 69 of file safe_sequence.tcc.

◆ append() [1/5]

_If_sv<_Tp, basic_string&> std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::append ( const _Tp &  __svt)
inlineinherited

Append a string_view.

Parameters
__svtThe object convertible to string_view to be appended.
Returns
Reference to this string.

Definition at line 4351 of file basic_string.h.

◆ append() [2/5]

_If_sv<_Tp, basic_string&> std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::append ( const _Tp &  __svt,
size_type  __pos,
size_type  __n = npos 
)
inlineinherited

Append a range of characters from a string_view.

Parameters
__svtThe object convertible to string_view to be appended from.
__posThe position in the string_view to append from.
__nThe number of characters to append from the string_view.
Returns
Reference to this string.

Definition at line 4367 of file basic_string.h.

◆ append() [3/5]

basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > > & std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::append ( const basic_string< _CharT, std::char_traits< _CharT >, std::allocator< _CharT > > &  __str)
inherited

Append a string to this string.

Parameters
__strThe string to append.
Returns
Reference to this string.

Definition at line 756 of file basic_string.tcc.

◆ append() [4/5]

basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > > & std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::append ( const basic_string< _CharT, std::char_traits< _CharT >, std::allocator< _CharT > > &  __str,
size_type  __pos,
size_type  __n = npos 
)
inherited

Append a substring.

Parameters
__strThe string to append.
__posIndex of the first character of str to append.
__nThe number of characters to append.
Returns
Reference to this string.
Exceptions
std::out_of_rangeif __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.

Definition at line 773 of file basic_string.tcc.

◆ append() [5/5]

basic_string& std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::append ( initializer_list< _CharT >  __l)
inlineinherited

Append an initializer_list of characters.

Parameters
__lThe initializer_list of characters to append.
Returns
Reference to this string.

Definition at line 4326 of file basic_string.h.

◆ assign() [1/5]

basic_string& std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::assign ( basic_string< _CharT, std::char_traits< _CharT >, std::allocator< _CharT > > &&  __str)
inlinenoexceptinherited

Set value to contents of another string.

Parameters
__strSource 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.

Definition at line 4408 of file basic_string.h.

◆ assign() [2/5]

_If_sv<_Tp, basic_string&> std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::assign ( const _Tp &  __svt)
inlineinherited

Set value from a string_view.

Parameters
__svtThe source object convertible to string_view.
Returns
Reference to this string.

Definition at line 4509 of file basic_string.h.

◆ assign() [3/5]

_If_sv<_Tp, basic_string&> std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::assign ( const _Tp &  __svt,
size_type  __pos,
size_type  __n = npos 
)
inlineinherited

Set value from a range of characters in a string_view.

Parameters
__svtThe source object convertible to string_view.
__posThe position in the string_view to assign from.
__nThe number of characters to assign.
Returns
Reference to this string.

Definition at line 4524 of file basic_string.h.

◆ assign() [4/5]

basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > > & std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::assign ( const basic_string< _CharT, std::char_traits< _CharT >, std::allocator< _CharT > > &  __str)
inherited

Set value to contents of another string.

Parameters
__strSource string to use.
Returns
Reference to this string.

Definition at line 674 of file basic_string.tcc.

◆ assign() [5/5]

basic_string& std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::assign ( const basic_string< _CharT, std::char_traits< _CharT >, std::allocator< _CharT > > &  __str,
size_type  __pos,
size_type  __n = npos 
)
inlineinherited

Set value to a substring of a string.

Parameters
__strThe string to use.
__posIndex of the first character of str.
__nNumber of characters to use.
Returns
Reference to this string.
Exceptions
std::out_of_rangeif 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.

Definition at line 4430 of file basic_string.h.

◆ at() [1/4]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator = std::allocator<_CharT>>
reference std::basic_string< _CharT, _Traits, _Alloc >::at
inline

Provides access to the data contained in the string.

Parameters
__nThe index of the character to access.
Returns
Read/write reference to the character.
Exceptions
std::out_of_rangeIf 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.

Definition at line 4152 of file basic_string.h.

◆ at() [2/4]

reference std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::at ( size_type  __n)
inlineinherited

Provides access to the data contained in the string.

Parameters
__nThe index of the character to access.
Returns
Read/write reference to the character.
Exceptions
std::out_of_rangeIf 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.

Definition at line 4152 of file basic_string.h.

◆ at() [3/4]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator = std::allocator<_CharT>>
const_reference std::basic_string< _CharT, _Traits, _Alloc >::at
inline

Provides access to the data contained in the string.

Parameters
__nThe index of the character to access.
Returns
Read-only (const) reference to the character.
Exceptions
std::out_of_rangeIf 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.

Definition at line 4130 of file basic_string.h.

◆ at() [4/4]

const_reference std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::at ( size_type  __n) const
inlineinherited

Provides access to the data contained in the string.

Parameters
__nThe index of the character to access.
Returns
Read-only (const) reference to the character.
Exceptions
std::out_of_rangeIf 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.

Definition at line 4130 of file basic_string.h.

◆ back() [1/2]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, 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.

Definition at line 4191 of file basic_string.h.

◆ back() [2/2]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator = std::allocator<_CharT>>
const_reference std::basic_string< _CharT, _Traits, _Alloc >::back
inlinenoexcept

Returns a read-only (constant) reference to the data at the last element of the string.

Definition at line 4202 of file basic_string.h.

◆ c_str()

const _CharT* std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::c_str
inlinenoexceptinherited

Return const pointer to null-terminated contents.

This is a handle to internal data. Do not modify or dire things may happen.

Definition at line 5256 of file basic_string.h.

◆ capacity()

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator = std::allocator<_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::capacity
inlinenoexcept

Returns the total number of characters that the string can hold before needing to allocate more memory.

Definition at line 4019 of file basic_string.h.

◆ cbegin()

const_iterator std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::cbegin
inlinenoexceptinherited

Returns a read-only (constant) iterator that points to the first character in the string.

Definition at line 3928 of file basic_string.h.

◆ cend()

const_iterator std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::cend
inlinenoexceptinherited

Returns a read-only (constant) iterator that points one past the last character in the string.

Definition at line 3936 of file basic_string.h.

◆ compare() [1/6]

_If_sv<_Tp, int> std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::compare ( const _Tp &  __svt) const
inlinenoexceptinherited

Compare to a string_view.

Parameters
__svtAn object convertible to string_view to compare against.
Returns
Integer < 0, 0, or > 0.

Definition at line 5832 of file basic_string.h.

◆ compare() [2/6]

int std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::compare ( const basic_string< _CharT, std::char_traits< _CharT >, std::allocator< _CharT > > &  __str) const
inlineinherited

Compare to a string.

Parameters
__strString 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.

Definition at line 5812 of file basic_string.h.

◆ compare() [3/6]

_If_sv<_Tp, int> std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::compare ( size_type  __pos,
size_type  __n,
const _Tp &  __svt 
) const
inlinenoexceptinherited

Compare to a string_view.

Parameters
__posA position in the string to start comparing from.
__nThe number of characters to compare.
__svtAn object convertible to string_view to compare against.
Returns
Integer < 0, 0, or > 0.

Definition at line 5856 of file basic_string.h.

◆ compare() [4/6]

int std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::compare ( size_type  __pos,
size_type  __n,
const basic_string< _CharT, std::char_traits< _CharT >, std::allocator< _CharT > > &  __str 
) const
inherited

Compare substring to a string.

Parameters
__posIndex of first character of substring.
__nNumber of characters in substring.
__strString 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.

Definition at line 1405 of file basic_string.tcc.

◆ compare() [5/6]

_If_sv<_Tp, int> std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::compare ( size_type  __pos1,
size_type  __n1,
const _Tp &  __svt,
size_type  __pos2,
size_type  __n2 = npos 
) const
inlinenoexceptinherited

Compare to a string_view.

Parameters
__pos1A position in the string to start comparing from.
__n1The number of characters to compare.
__svtAn object convertible to string_view to compare against.
__pos2A position in the string_view to start comparing from.
__n2The number of characters to compare.
Returns
Integer < 0, 0, or > 0.

Definition at line 5875 of file basic_string.h.

◆ compare() [6/6]

int std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::compare ( size_type  __pos1,
size_type  __n1,
const basic_string< _CharT, std::char_traits< _CharT >, std::allocator< _CharT > > &  __str,
size_type  __pos2,
size_type  __n2 = npos 
) const
inherited

Compare substring to a substring.

Parameters
__pos1Index of first character of substring.
__n1Number of characters in substring.
__strString to compare against.
__pos2Index of first character of substring of str.
__n2Number 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.

Definition at line 1420 of file basic_string.tcc.

◆ crbegin()

const_reverse_iterator std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::crbegin
inlinenoexceptinherited

Returns a read-only (constant) reverse iterator that points to the last character in the string. Iteration is done in reverse element order.

Definition at line 3945 of file basic_string.h.

◆ crend()

const_reverse_iterator std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::crend
inlinenoexceptinherited

Returns a read-only (constant) reverse iterator that points to one before the first character in the string. Iteration is done in reverse element order.

Definition at line 3954 of file basic_string.h.

◆ data()

const _CharT* std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::data
inlinenoexceptinherited

Return const pointer to contents.

This is a pointer to internal data. It is undefined to modify the contents through the returned pointer. To get a pointer that allows modifying the contents use &str[0] instead, (or in C++17 the non-const str.data() overload).

Definition at line 5268 of file basic_string.h.

◆ empty()

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator = std::allocator<_CharT>>
bool std::basic_string< _CharT, _Traits, _Alloc >::empty
inlinenoexcept

Returns true if the string is empty. Equivalent to *this == "".

Definition at line 4076 of file basic_string.h.

◆ erase() [1/2]

basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::iterator std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::erase ( iterator  __first,
iterator  __last 
)
inherited

Remove a range of characters.

Parameters
__firstIterator referencing the first character to remove.
__lastIterator 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.

Definition at line 822 of file basic_string.tcc.

◆ erase() [2/2]

iterator std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::erase ( iterator  __position)
inlineinherited

Remove one character.

Parameters
__positionIterator 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.

Definition at line 4775 of file basic_string.h.

◆ find() [1/2]

_If_sv<_Tp, size_type> std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::find ( const _Tp &  __svt,
size_type  __pos = 0 
) const
inlinenoexceptinherited

Find position of a string_view.

Parameters
__svtThe object convertible to string_view to locate.
__posIndex of character to search from (default 0).
Returns
Index of start of first occurrence.

Definition at line 5363 of file basic_string.h.

◆ find() [2/2]

size_type std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::find ( const basic_string< _CharT, std::char_traits< _CharT >, std::allocator< _CharT > > &  __str,
size_type  __pos = 0 
) const
inlinenoexceptinherited

Find position of a string.

Parameters
__strString to locate.
__posIndex 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.

Definition at line 5320 of file basic_string.h.

◆ find_first_not_of() [1/2]

_If_sv<_Tp, size_type> std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::find_first_not_of ( const _Tp &  __svt,
size_type  __pos = 0 
) const
inlinenoexceptinherited

Find position of a character not in a string_view.

Parameters
__svtAn object convertible to string_view containing characters to avoid.
__posIndex of character to search from (default 0).
Returns
Index of first occurrence.

Definition at line 5690 of file basic_string.h.

◆ find_first_not_of() [2/2]

size_type std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::find_first_not_of ( const basic_string< _CharT, std::char_traits< _CharT >, std::allocator< _CharT > > &  __str,
size_type  __pos = 0 
) const
inlinenoexceptinherited

Find position of a character not in string.

Parameters
__strString containing characters to avoid.
__posIndex 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.

Definition at line 5628 of file basic_string.h.

◆ find_first_of() [1/2]

_If_sv<_Tp, size_type> std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::find_first_of ( const _Tp &  __svt,
size_type  __pos = 0 
) const
inlinenoexceptinherited

Find position of a character of a string_view.

Parameters
__svtAn object convertible to string_view containing characters to locate.
__posIndex of character to search from (default 0).
Returns
Index of first occurrence.

Definition at line 5525 of file basic_string.h.

◆ find_first_of() [2/2]

size_type std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::find_first_of ( const basic_string< _CharT, std::char_traits< _CharT >, std::allocator< _CharT > > &  __str,
size_type  __pos = 0 
) const
inlinenoexceptinherited

Find position of a character of string.

Parameters
__strString containing characters to locate.
__posIndex 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.

Definition at line 5461 of file basic_string.h.

◆ find_last_not_of() [1/2]

_If_sv<_Tp, size_type> std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::find_last_not_of ( const _Tp &  __svt,
size_type  __pos = npos 
) const
inlinenoexceptinherited

Find last position of a character not in a string_view.

Parameters
__svtAn object convertible to string_view containing characters to avoid.
__posIndex of character to search back from (default end).
Returns
Index of last occurrence.

Definition at line 5772 of file basic_string.h.

◆ find_last_not_of() [2/2]

size_type std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::find_last_not_of ( const basic_string< _CharT, std::char_traits< _CharT >, std::allocator< _CharT > > &  __str,
size_type  __pos = npos 
) const
inlinenoexceptinherited

Find last position of a character not in string.

Parameters
__strString containing characters to avoid.
__posIndex 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.

Definition at line 5710 of file basic_string.h.

◆ find_last_of() [1/2]

_If_sv<_Tp, size_type> std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::find_last_of ( const _Tp &  __svt,
size_type  __pos = npos 
) const
inlinenoexceptinherited

Find last position of a character of string.

Parameters
__svtAn object convertible to string_view containing characters to locate.
__posIndex of character to search back from (default end).
Returns
Index of last occurrence.

Definition at line 5609 of file basic_string.h.

◆ find_last_of() [2/2]

size_type std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::find_last_of ( const basic_string< _CharT, std::char_traits< _CharT >, std::allocator< _CharT > > &  __str,
size_type  __pos = npos 
) const
inlinenoexceptinherited

Find last position of a character of string.

Parameters
__strString containing characters to locate.
__posIndex 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.

Definition at line 5545 of file basic_string.h.

◆ front() [1/2]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, 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.

Definition at line 4169 of file basic_string.h.

◆ front() [2/2]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator = std::allocator<_CharT>>
const_reference std::basic_string< _CharT, _Traits, _Alloc >::front
inlinenoexcept

Returns a read-only (constant) reference to the data at the first element of the string.

Definition at line 4180 of file basic_string.h.

◆ get_allocator()

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator = std::allocator<_CharT>>
allocator_type std::basic_string< _CharT, _Traits, _Alloc >::get_allocator
inlinenoexcept

Return copy of allocator used to construct this string.

Definition at line 5290 of file basic_string.h.

◆ insert() [1/8]

iterator std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::insert ( iterator  __p,
_CharT  __c 
)
inlineinherited

Insert one character.

Parameters
__pIterator referencing position in string to insert at.
__cThe character to insert.
Returns
Iterator referencing newly inserted char.
Exceptions
std::length_errorIf 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.

Definition at line 4699 of file basic_string.h.

◆ insert() [2/8]

void std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::insert ( iterator  __p,
_InputIterator  __beg,
_InputIterator  __end 
)
inlineinherited

Insert a range of characters.

Parameters
__pIterator referencing location in string to insert at.
__begStart of range.
__endEnd of range.
Exceptions
std::length_errorIf 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.

Definition at line 4564 of file basic_string.h.

◆ insert() [3/8]

void std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::insert ( iterator  __p,
initializer_list< _CharT >  __l 
)
inlineinherited

Insert an initializer_list of characters.

Parameters
__pIterator referencing location in string to insert at.
__lThe initializer_list of characters to insert.
Exceptions
std::length_errorIf new length exceeds max_size().

Definition at line 4575 of file basic_string.h.

◆ insert() [4/8]

void std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::insert ( iterator  __p,
size_type  __n,
_CharT  __c 
)
inlineinherited

Insert multiple characters.

Parameters
__pIterator referencing location in string to insert at.
__nNumber of characters to insert
__cThe character to insert.
Exceptions
std::length_errorIf 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.

Definition at line 4547 of file basic_string.h.

◆ insert() [5/8]

_If_sv<_Tp, basic_string&> std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::insert ( size_type  __pos,
const _Tp &  __svt 
)
inlineinherited

Insert a string_view.

Parameters
__posPosition in string to insert at.
__svtThe object convertible to string_view to insert.
Returns
Reference to this string.

Definition at line 4717 of file basic_string.h.

◆ insert() [6/8]

_If_sv<_Tp, basic_string&> std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::insert ( size_type  __pos1,
const _Tp &  __svt,
size_type  __pos2,
size_type  __n = npos 
)
inlineinherited

Insert a string_view.

Parameters
__pos1Position in string to insert at.
__svtThe object convertible to string_view to insert from.
__pos2Position in string_view to insert from.
__nThe number of characters to insert.
Returns
Reference to this string.

Definition at line 4733 of file basic_string.h.

◆ insert() [7/8]

basic_string& std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::insert ( size_type  __pos1,
const basic_string< _CharT, std::char_traits< _CharT >, std::allocator< _CharT > > &  __str 
)
inlineinherited

Insert value of a string.

Parameters
__pos1Position in string to insert at.
__strThe string to insert.
Returns
Reference to this string.
Exceptions
std::length_errorIf 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.

Definition at line 4595 of file basic_string.h.

◆ insert() [8/8]

basic_string& std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::insert ( size_type  __pos1,
const basic_string< _CharT, std::char_traits< _CharT >, std::allocator< _CharT > > &  __str,
size_type  __pos2,
size_type  __n = npos 
)
inlineinherited

Insert a substring.

Parameters
__pos1Position in string to insert at.
__strThe string to insert.
__pos2Start of characters in str to insert.
__nNumber of characters to insert.
Returns
Reference to this string.
Exceptions
std::length_errorIf new length exceeds max_size().
std::out_of_rangeIf 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.

Definition at line 4617 of file basic_string.h.

◆ length()

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator = std::allocator<_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::length
inlinenoexcept

Returns the number of characters in the string, not including any null-termination.

Definition at line 3969 of file basic_string.h.

◆ max_size()

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator = std::allocator<_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::max_size
inlinenoexcept

Returns the size() of the largest possible string.

Definition at line 3974 of file basic_string.h.

◆ operator __sv_type()

std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::operator __sv_type
inlinenoexceptinherited

Convert to a string_view.

Returns
A string_view.

Definition at line 3843 of file basic_string.h.

◆ operator+=() [1/2]

_If_sv<_Tp, basic_string&> std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::operator+= ( const _Tp &  __svt)
inlineinherited

Append a string_view.

Parameters
__svtThe object convertible to string_view to be appended.
Returns
Reference to this string.

Definition at line 4259 of file basic_string.h.

◆ operator+=() [2/2]

basic_string& std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::operator+= ( const basic_string< _CharT, std::char_traits< _CharT >, std::allocator< _CharT > > &  __str)
inlineinherited

Append a string to this string.

Parameters
__strThe string to append.
Returns
Reference to this string.

Definition at line 4216 of file basic_string.h.

◆ replace() [1/11]

_If_sv<_Tp, basic_string&> std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::replace ( const_iterator  __i1,
const_iterator  __i2,
const _Tp &  __svt 
)
inlineinherited

Replace range of characters with string_view.

Parameters
__i1An iterator referencing the start position to replace at.
__i2An iterator referencing the end position for the replace.
__svtThe object convertible to string_view to insert from.
Returns
Reference to this string.

Definition at line 5145 of file basic_string.h.

◆ replace() [2/11]

basic_string& std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::replace ( iterator  __i1,
iterator  __i2,
_InputIterator  __k1,
_InputIterator  __k2 
)
inlineinherited

Replace range of characters with range.

Parameters
__i1Iterator referencing start of range to replace.
__i2Iterator referencing end of range to replace.
__k1Iterator referencing start of range to insert.
__k2Iterator referencing end of range to insert.
Returns
Reference to this string.
Exceptions
std::length_errorIf 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.

Definition at line 5023 of file basic_string.h.

◆ replace() [3/11]

basic_string& std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::replace ( iterator  __i1,
iterator  __i2,
const _CharT *  __s 
)
inlineinherited

Replace range of characters with C string.

Parameters
__i1Iterator referencing start of range to replace.
__i2Iterator referencing end of range to replace.
__sC string value to insert.
Returns
Reference to this string.
Exceptions
std::length_errorIf 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.

Definition at line 4978 of file basic_string.h.

◆ replace() [4/11]

basic_string& std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::replace ( iterator  __i1,
iterator  __i2,
const _CharT *  __s,
size_type  __n 
)
inlineinherited

Replace range of characters with C substring.

Parameters
__i1Iterator referencing start of range to replace.
__i2Iterator referencing end of range to replace.
__sC string value to insert.
__nNumber of characters from s to insert.
Returns
Reference to this string.
Exceptions
std::length_errorIf 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.

Definition at line 4957 of file basic_string.h.

◆ replace() [5/11]

basic_string& std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::replace ( iterator  __i1,
iterator  __i2,
const basic_string< _CharT, std::char_traits< _CharT >, std::allocator< _CharT > > &  __str 
)
inlineinherited

Replace range of characters with string.

Parameters
__i1Iterator referencing start of range to replace.
__i2Iterator referencing end of range to replace.
__strString value to insert.
Returns
Reference to this string.
Exceptions
std::length_errorIf 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.

Definition at line 4938 of file basic_string.h.

◆ replace() [6/11]

basic_string& std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::replace ( iterator  __i1,
iterator  __i2,
initializer_list< _CharT >  __l 
)
inlineinherited

Replace range of characters with initializer_list.

Parameters
__i1Iterator referencing start of range to replace.
__i2Iterator referencing end of range to replace.
__lThe initializer_list of characters to insert.
Returns
Reference to this string.
Exceptions
std::length_errorIf 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.

Definition at line 5092 of file basic_string.h.

◆ replace() [7/11]

basic_string& std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::replace ( iterator  __i1,
iterator  __i2,
size_type  __n,
_CharT  __c 
)
inlineinherited

Replace range of characters with multiple characters.

Parameters
__i1Iterator referencing start of range to replace.
__i2Iterator referencing end of range to replace.
__nNumber of characters to insert.
__cCharacter to insert.
Returns
Reference to this string.
Exceptions
std::length_errorIf 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.

Definition at line 4999 of file basic_string.h.

◆ replace() [8/11]

_If_sv<_Tp, basic_string&> std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::replace ( size_type  __pos,
size_type  __n,
const _Tp &  __svt 
)
inlineinherited

Replace range of characters with string_view.

Parameters
__posThe position to replace at.
__nThe number of characters to replace.
__svtThe object convertible to string_view to insert.
Returns
Reference to this string.

Definition at line 5107 of file basic_string.h.

◆ replace() [9/11]

basic_string& std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::replace ( size_type  __pos,
size_type  __n,
const basic_string< _CharT, std::char_traits< _CharT >, std::allocator< _CharT > > &  __str 
)
inlineinherited

Replace characters with value from another string.

Parameters
__posIndex of first character to replace.
__nNumber of characters to be replaced.
__strString to insert.
Returns
Reference to this string.
Exceptions
std::out_of_rangeIf pos is beyond the end of this string.
std::length_errorIf 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.

Definition at line 4829 of file basic_string.h.

◆ replace() [10/11]

_If_sv<_Tp, basic_string&> std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::replace ( size_type  __pos1,
size_type  __n1,
const _Tp &  __svt,
size_type  __pos2,
size_type  __n2 = npos 
)
inlineinherited

Replace range of characters with string_view.

Parameters
__pos1The position to replace at.
__n1The number of characters to replace.
__svtThe object convertible to string_view to insert from.
__pos2The position in the string_view to insert from.
__n2The number of characters to insert.
Returns
Reference to this string.

Definition at line 5124 of file basic_string.h.

◆ replace() [11/11]

basic_string& std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::replace ( size_type  __pos1,
size_type  __n1,
const basic_string< _CharT, std::char_traits< _CharT >, std::allocator< _CharT > > &  __str,
size_type  __pos2,
size_type  __n2 = npos 
)
inlineinherited

Replace characters with value from another string.

Parameters
__pos1Index of first character to replace.
__n1Number of characters to be replaced.
__strString to insert.
__pos2Index of first character of str to use.
__n2Number of characters from str to use.
Returns
Reference to this string.
Exceptions
std::out_of_rangeIf __pos1 > size() or __pos2 > __str.size().
std::length_errorIf 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.

Definition at line 4851 of file basic_string.h.

◆ reserve() [1/3]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator = std::allocator<_CharT>>
void std::basic_string< _CharT, _Traits, _Alloc >::reserve

Equivalent to shrink_to_fit().

Definition at line 1134 of file basic_string.tcc.

◆ reserve() [2/3]

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator = std::allocator<_CharT>>
void std::basic_string< _CharT, _Traits, _Alloc >::reserve

Attempt to preallocate enough memory for specified number of characters.

Parameters
__res_argNumber of characters required.
Exceptions
std::length_errorIf __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.

Definition at line 933 of file basic_string.tcc.

◆ reserve() [3/3]

void std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::reserve ( size_type  __res_arg)
inherited

Attempt to preallocate enough memory for specified number of characters.

Parameters
__res_argNumber of characters required.
Exceptions
std::length_errorIf __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.

Definition at line 933 of file basic_string.tcc.

◆ rfind() [1/2]

_If_sv<_Tp, size_type> std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::rfind ( const _Tp &  __svt,
size_type  __pos = npos 
) const
inlinenoexceptinherited

Find last position of a string_view.

Parameters
__svtThe object convertible to string_view to locate.
__posIndex of character to search back from (default end).
Returns
Index of start of last occurrence.

Definition at line 5441 of file basic_string.h.

◆ rfind() [2/2]

size_type std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::rfind ( const basic_string< _CharT, std::char_traits< _CharT >, std::allocator< _CharT > > &  __str,
size_type  __pos = npos 
) const
inlinenoexceptinherited

Find last position of a string.

Parameters
__strString to locate.
__posIndex 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.

Definition at line 5382 of file basic_string.h.

◆ size()

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, typename _Allocator = std::allocator<_CharT>>
size_type std::basic_string< _CharT, _Traits, _Alloc >::size
inlinenoexcept

Returns the number of characters in the string, not including any null-termination.

Definition at line 3963 of file basic_string.h.

◆ swap()

void std::basic_string< _CharT, std::char_traits< _CharT > , std::allocator< _CharT > >::swap ( basic_string< _CharT, std::char_traits< _CharT >, std::allocator< _CharT > > &  __s)
noexceptinherited

Swap contents with another string.

Parameters
__sString to swap with.

Exchanges the contents of this string with that of __s in constant time.

Definition at line 959 of file basic_string.tcc.

Member Data Documentation

◆ npos

template<typename _CharT , typename _Traits = std::char_traits<_CharT>, 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.

Definition at line 3388 of file basic_string.h.


The documentation for this class was generated from the following file: