string::assign
Assign characters to a string.
Synopsis
string&
assign(
std::size_t count,
char ch); (1)
string&
assign(
char const* s,
std::size_t count); (2)
string&
assign(
char const* s); (3)
template<
class InputIt>
string&
assign(
InputIt first,
InputIt last); (4)
string&
assign(
string_view s); (5)
string&
assign(
string const& other); (6)
string&
assign(
string&& other); (7)
Description
-
(1) replaces the contents with
countcopies of characterch. -
(2) replaces the contents with copies of the characters in the range
[s, s + count). This range can contain null characters. -
(3) replaces the contents with those of the null terminated string
s. The length of the string is determined by the first null character. -
(4) replaces the contents with copies of characters in the range
[first, last). -
(5) Replaces the contents with those of string view
s. This view can contain null characters. -
(6) replaces the contents with a copy of the characters of
other. -
(7) if
*storage() == *other.storage()takes ownership of the element storage ofother; otherwise equivalent to (6).
Self-assignment using (7) does nothing.
After (7) other is left in valid but unspecified state.
Constraints
InputIt satisfies LegacyInputIterator.
Complexity
-
(1), (2) linear in
count. -
(3) linear in
std::strlen(s). -
(4) linear in
std::distance(first, last). -
(5) linear in
s.size(). -
(6) linear in
other.size(). -
(7) constant if
*storage() == *other.storage(), otherwise linear inother.size().
Exception Safety
(7) provides strong guarantee if *storage() != *other.storage() and no-throw guarantee otherwise. Other overloads provide strong guarantee. Calls to memory_resource::allocate may throw.
Template Parameters
| Type | Description |
|---|---|
|
The type of the iterators. |
Return Value
*this.
Parameters
| Name | Description |
|---|---|
|
The number of the characters to use. |
|
The character to fill the string with. |
|
A pointer to a character string used to copy from. |
|
An input iterator pointing to the first character to insert, or pointing to the end of the range. |
|
An input iterator pointing to the end of the range. |
|
Another string. |
Exceptions
| Type | Thrown On |
|---|---|
|
The size of the string after the operation would exceed |