Showing content from https://cplusplus.com/reference/string/basic_string/operator=/ below:
public member function
<string>
std::basic_string::operator= 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:
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.
The move assignment (5) modifies str.
Exception safety For the move assignment (5), the function does not throw exceptions (no-throw guarantee).
In all other cases, there are no effects in case an exception is thrown (strong guarantee).
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
-
basic_string::assign
-
Assign content to string (public member function)
-
basic_string::operator+=
-
Append to string (public member function)
-
basic_string::insert
-
Insert into string (public member function)
-
basic_string::replace
-
Replace portion of string (public member function)
-
basic_string::basic_string
-
Construct basic_string object (public member function)
-
basic_string::compare
-
Compare strings (public member function)
RetroSearch is an open source project built by @garambo
| Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4