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.