std::char_traits<char>::assign, std::char_traits<wchar_t>::assign, std::char_traits<char8_t>::assign, std::char_traits<char16_t>::assign, std::char_traits<char32_t>::assign
From cppreference.com
                    
                                        
                    < cpp | string | char traits
                    
                                                            
                    |   static void assign( char_type& c1, const char_type& c2 );  | 
(1) |  (noexcept since C++11) (constexpr since C++17)  | 
|   static char_type* assign( char_type* ptr, std::size_t count, char_type c2 );  | 
(2) | (constexpr since C++20) | 
1) Assigns c2 to c1, behaves identically to c1 = c2.
2) Assigns c2 to each character in count characters in the character sequence pointed to by ptr.
See CharTraits for the general requirements on character traits for X::assign.
Parameters
| c1 | - | character to assign to | 
| c2 | - | character value to assign | 
| ptr | - | pointer to a character sequence to assign to | 
| count | - | the length of the character sequence | 
Return value
1) (none)
2) ptr
Complexity
1) Constant.
2) Linear in count.