std::forward_list<T,Allocator>:: operator=
|
forward_list
&
operator
=
(
const
forward_list
&
other
)
;
|
(1) |
(depuis C++11)
(constexpr depuis C++26) |
| (2) | ||
|
forward_list
&
operator
=
(
forward_list
&&
other
)
;
|
(depuis C++11)
(jusqu'à C++17) |
|
|
forward_list
&
operator
=
(
forward_list
&&
other
)
noexcept ( /* voir ci-dessous */ ) ; |
(depuis C++17)
(constexpr depuis C++26) |
|
|
forward_list
&
operator
=
(
std::
initializer_list
<
value_type
>
ilist
)
;
|
(3) |
(depuis C++11)
(constexpr depuis C++26) |
Remplace le contenu du conteneur.
Soit
traits
le
std::
allocator_traits
<
allocator_type
>
:
ContenuParamètres
Valeur de retour* this Complexité
1)
Linéaire dans la taille de
*
this
et
other
.
2)
Linéaire dans la taille de
*
this
sauf si les allocateurs ne sont pas égaux et ne se propagent pas, auquel cas linéaire dans la taille de
*
this
et
other
.
3)
Linéaire dans la taille de
*
this
et
ilist
.
Exceptions
NotesAprès l'assignation par déplacement d'un conteneur (surcharge (2)), sauf si l'assignation par déplacement élément par élément est forcée par des allocateurs incompatibles, les références, pointeurs et itérateurs qui référençaient initialement des éléments dans ExempleLe code suivant utilise operator = pour assigner une std::forward_list à une autre :
Exécuter ce code
#include <initializer_list> #include <iostream> #include <iterator> #include <forward_list> void print(const auto comment, const auto& container) { auto size = std::ranges::distance(container); std::cout << comment << "{ "; for (const auto& element : container) std::cout << element << (--size ? ", " : " "); std::cout << "}\n"; } int main() { std::forward_list<int> x{1, 2, 3}, y, z; const auto w = {4, 5, 6, 7}; std::cout << "Initially:\n"; print("x = ", x); print("y = ", y); print("z = ", z); std::cout << "Copy assignment copies data from x to y:\n"; y = x; print("x = ", x); print("y = ", y); std::cout << "Move assignment moves data from x to z, modifying both x and z:\n"; z = std::move(x); print("x = ", x); print("z = ", z); std::cout << "Assignment of initializer_list w to z:\n"; z = w; print("w = ", w); print("z = ", z); } Sortie : Initially:
x = { 1, 2, 3 }
y = { }
z = { }
Copy assignment copies data from x to y:
x = { 1, 2, 3 }
y = { 1, 2, 3 }
Move assignment moves data from x to z, modifying both x and z:
x = { }
z = { 1, 2, 3 }
Assignment of initializer_list w to z:
w = { 4, 5, 6, 7 }
z = { 4, 5, 6, 7 }
Voir aussi
|