std::forward_list<T,Allocator>:: assign
|
void
assign
(
size_type count,
const
T
&
value
)
;
|
(1) |
(начиная с C++11)
(constexpr начиная с C++26) |
|
template
<
class
InputIt
>
void assign ( InputIt first, InputIt last ) ; |
(2) |
(начиная с C++11)
(constexpr начиная с C++26) |
|
void
assign
(
std::
initializer_list
<
T
>
ilist
)
;
|
(3) |
(начиная с C++11)
(constexpr начиная с C++26) |
Заменяет содержимое контейнера.
[
first
,
last
)
.
|
Эта перегрузка имеет тот же эффект, что и перегрузка
(1)
, если
|
(до C++11) |
|
Эта перегрузка участвует в разрешении перегрузки только если
|
(начиная с C++11) |
Все итераторы, указатели и ссылки на элементы контейнера становятся недействительными.
Содержание |
Параметры
| count | - | новый размер контейнера |
| value | - | значение для инициализации элементов контейнера |
| first, last | - | пара итераторов, определяющая исходный диапазон элементов для копирования |
| ilist | - | std::initializer_list для копирования значений |
Сложность
Пример
Следующий код использует
assign
для добавления нескольких символов в
std::
forward_list
<
char
>
:
#include <forward_list> #include <iostream> #include <string> int main() { std::forward_list<char> characters; auto print_forward_list = [&]() { for (char c : characters) std::cout << c << ' '; std::cout << '\n'; }; characters.assign(5, 'a'); print_forward_list(); const std::string extra(6, 'b'); characters.assign(extra.begin(), extra.end()); print_forward_list(); characters.assign({'C', '+', '+', '1', '1'}); print_forward_list(); }
Вывод:
a a a a a b b b b b b C + + 1 1
Отчеты о дефектах
Следующие отчеты об изменениях поведения, влияющие на дефекты, были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Applied to | Behavior as published | Correct behavior |
|---|---|---|---|
| LWG 2209 | C++11 |
операция замены требовала реализации как
удаление всех существующих элементов с последующей вставкой заданных элементов |
требование
удалено |
Смотрите также
|
(C++23)
|
присваивает диапазон значений контейнеру
(публичная функция-член) |
|
присваивает значения контейнеру
(публичная функция-член) |