std::basic_string
From cppreference.com
                    
                                        
                    
                    
                                                            
                    |   Defined in header <string>
   | 
||
|   template<      class CharT,   | 
||
The class template basic_string stores and manipulates sequences of char-like objects (that is, objects for which a specialization of std::char_traits or compatible traits class is provided).
The elements of a basic_string are stored contiguously, that is, for a basic_string s, &*(s.begin() + n) == &*s.begin() + n for any n in [0, s.size()), or, equivalently, a pointer to s[0] can be passed to functions that expect a pointer to the first element of a charT[] array. (since C++11)
Several specializations for common character types are provided:
|   Defined in header <string>  
 | |
| Type | Definition | 
| std::string | std::basic_string<char> | 
| std::wstring | std::basic_string<wchar_t> | 
| std::u16string | std::basic_string<char16_t> | 
| std::u32string | std::basic_string<char32_t> | 
Contents | 
[edit] Member types
| Member type | Definition | 
| traits_type | Traits | 
| value_type | Traits::char_type | 
| allocator_type | Allocator | 
| size_type | Unsigned integral type (usually size_t) | 
| difference_type | Signed integer type (usually ptrdiff_t) | 
| reference |   Allocator::reference (until C++11) value_type& (since C++11)  | 
| const_reference |   Allocator::const_reference (until C++11) const value_type& (since C++11)  | 
| pointer |   Allocator::pointer (until C++11) std::allocator_traits<Allocator>::pointer (since C++11)  | 
| const_pointer |   Allocator::const_pointer (until C++11) std::allocator_traits<Allocator>::const_pointer (since C++11)  | 
| iterator | RandomAccessIterator | 
| const_iterator | Constant random access iterator | 
  reverse_iterator
 | 
std::reverse_iterator<iterator> | 
  const_reverse_iterator
 | 
std::reverse_iterator<const_iterator> | 
[edit] Member functions
|   constructs a basic_string  (public member function)  | |
|    assigns values to the string   (public member function)  | |
|     assign characters to a string  (public member function)  | |
|    returns the associated allocator   (public member function)  | |
 Element access | |
|     access specified character with bounds checking  (public member function)  | |
|     access specified character  (public member function)  | |
|    (C++11)  | 
   accesses the first character  (public member function)  | 
|    (C++11)  | 
   accesses the last character  (public member function)  | 
|    returns a pointer to the first character of a string  (public member function)  | |
|    returns a non-modifiable standard C character array version of the string  (public member function)  | |
 Iterators | |
|    (C++11)  | 
   returns an iterator to the beginning   (public member function)  | 
|    (C++11)  | 
   returns an iterator to the end   (public member function)  | 
|    (C++11)  | 
   returns a reverse iterator to the beginning   (public member function)  | 
|    (C++11)  | 
   returns a reverse iterator to the end   (public member function)  | 
 Capacity | |
|    checks whether the string is empty   (public member function)  | |
|    returns the number of characters   (public member function)  | |
|    returns the length of the string  (public member function)  | |
|    returns the maximum number of characters   (public member function)  | |
|    reserves storage   (public member function)  | |
|    returns the number of characters that can be held in currently allocated storage   (public member function)  | |
|    (C++11)  | 
   reduces memory usage by freeing unused memory   (public member function)  | 
 Operations | |
|    clears the contents  (public member function)  | |
|    inserts characters  (public member function)  | |
|    removes characters   (public member function)  | |
|    inserts characters to the end  (public member function)  | |
|    (C++11)  | 
   removes the last character   (public member function)  | 
|    appends characters to the end  (public member function)  | |
|    appends characters to the end  (public member function)  | |
|    compares two strings  (public member function)  | |
|    replaces every occurrence of specified characters  (public member function)  | |
|    returns a substring  (public member function)  | |
|    copies characters  (public member function)  | |
|    changes the number of characters stored   (public member function)  | |
|    swaps the contents   (public member function)  | |
 Search | |
|    find characters in the string  (public member function)  | |
|    find the last occurrence of a substring  (public member function)  | |
|    find first occurrence of characters  (public member function)  | |
|    find first absence of characters  (public member function)  | |
|    find last occurrence of characters  (public member function)  | |
|    find last absence of characters  (public member function)  | |
 Constants | |
|    [static]  | 
   special value. The exact meaning depends on the context  (public static member constant)  | 
[edit] Non-member functions
|    concatenates two strings or a string and a char   (function template)  | |
|    lexicographically compares two strings   (function template)  | |
|    specializes the std::swap algorithm  (function template)  | |
 Input/output | |
|    performs stream I/O on strings   (function template)  | |
|    read data from an I/O stream into a string  (function)  | |
 Numeric conversions | |
|    (C++11) (C++11) (C++11)  | 
   converts a string to an signed integer   (function)  | 
|    (C++11) (C++11)  | 
   converts a string to an unsigned integer   (function)  | 
|    (C++11) (C++11) (C++11)  | 
   converts a string to an floating point value   (function)  | 
|    (C++11)  | 
   converts an integral or floating point value to string   (function)  | 
|    (C++11)  | 
   converts an integral or floating point value to wstring   (function)  | 
[edit] Helper classes
|    (C++11) (C++11) (C++11) (C++11)  | 
   hash support for strings   (class template specialization)  |