public member function

std::basic_string::operator=

<string>
string (1)
basic_string& operator= (const basic_string& str);
c-string (2)
basic_string& operator= (const charT* s);
character (3)
basic_string& operator= (charT c);
string (1)
basic_string& operator= (const basic_string& str);
c-string (2)
basic_string& operator= (const charT* s);
character (3)
basic_string& operator= (charT c);
initializer list (4)
basic_string& operator= (initializer_list<charT> il);
move (5)
basic_string& operator= (basic_string&& str) noexcept;
String assignment
Assigns a new value to the string, replacing its current contents.

(See member function assign for additional assignment options).

Parameters

str
A basic_string object of the same type (with the same class template arguments charT, traits and Alloc), whose value is either copied (1) or moved (5) if different from *this (if moved, str is left in an unspecified but valid state).
s
Pointer to a null-terminated sequence of characters.
The sequence is copied as the new value for the string.
The length is determined by calling traits_type::length(s).
c
A character.
The string value is set to a single copy of this character (the string length becomes 1).
il
An initializer_list object.
These objects are automatically constructed from initializer list declarators.
The characters are copied, in the same order.

charT is basic_string's character type (i.e., its first template parameter).

Return Value

*this

Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// string assigning
#include <iostream>
#include <string>

int main ()
{
  std::string str1, str2, str3;
  str1 = "Test string: ";   // c-string
  str2 = 'x';               // single character
  str3 = str1 + str2;       // string

  std::cout << str3  << '\n';
  return 0;
}


Output:
Test string: x

Complexity

Unspecified.
Unspecified, but generally linear in the new string length (and constant for the move version).

Iterator validity

Any iterators, pointers and references related to this object may be invalidated.

Data races

The object is modified.

Exception safety

Strong guarantee: if an exception is thrown, there are no changes in the basic_string.

If the resulting string length would exceed the max_size, a length_error exception is thrown.
If the type uses the default allocator, a bad_alloc exception is thrown if the function needs to allocate storage and fails.

See also