std:: forward_list
|
Défini dans l'en-tête
<forward_list>
|
||
|
template
<
class
T,
|
(1) | (depuis C++11) |
|
namespace
pmr
{
template
<
class
T
>
|
(2) | (depuis C++17) |
std::forward_list
est un conteneur qui prend en charge l'insertion et la suppression rapides d'éléments depuis n'importe où dans le conteneur. L'accès aléatoire rapide n'est pas pris en charge. Il est implémenté sous forme de liste simplement chaînée. Comparé à
std::list
ce conteneur offre un stockage plus efficace en espace mémoire lorsque l'itération bidirectionnelle n'est pas nécessaire.
L'ajout, la suppression et le déplacement des éléments dans la liste, ou entre plusieurs listes, n'invalident pas les itérateurs faisant actuellement référence à d'autres éléments de la liste. Cependant, un itérateur ou une référence se rapportant à un élément est invalidé lorsque l'élément correspondant est supprimé (via erase_after ) de la liste.
std::forward_list
satisfait aux exigences de
Container
(à l'exception de la fonction membre
size
et du fait que la complexité de
operator==
est toujours linéaire),
AllocatorAwareContainer
et
SequenceContainer
.
Toutes les fonctions membres de
std::forward_list
sont
constexpr
: il est possible de créer et d'utiliser des objets
std::forward_list
dans l'évaluation d'une expression constante.
Cependant,
|
(depuis C++26) |
Table des matières |
Paramètres du modèle
| T | - |
Le type des éléments.
|
||||||||||||
| Allocator | - |
Un allocateur utilisé pour acquérir/libérer la mémoire et pour construire/détruire les éléments dans cette mémoire. Le type doit satisfaire aux exigences de
Allocator
.
Le comportement est indéfini
(jusqu'en C++20)
Le programme est mal formé
(depuis C++20)
si
Allocator::value_type
n'est pas identique à
T
.
|
Types membres
| Type de membre | Définition |
value_type
|
T
|
allocator_type
|
Allocator
|
size_type
|
Type entier non signé (généralement std::size_t ) |
difference_type
|
Type entier signé (généralement std::ptrdiff_t ) |
reference
|
value_type & |
const_reference
|
const value_type & |
pointer
|
std:: allocator_traits < Allocator > :: pointer |
const_pointer
|
std:: allocator_traits < Allocator > :: const_pointer |
iterator
|
LegacyForwardIterator
et
ConstexprIterator
(depuis C++26)
vers
value_type
|
const_iterator
|
LegacyForwardIterator et ConstexprIterator (depuis C++26) vers const value_type |
Fonctions membres
construit le
forward_list
(fonction membre publique) |
|
détruit le
forward_list
(fonction membre publique) |
|
|
assigne des valeurs au conteneur
(fonction membre publique) |
|
|
assigne des valeurs au conteneur
(fonction membre publique) |
|
|
(C++23)
|
assigne une plage de valeurs au conteneur
(fonction membre publique) |
|
retourne l'allocateur associé
(fonction membre publique) |
|
Accès aux éléments |
|
|
accéder au premier élément
(fonction membre publique) |
|
Itérateurs |
|
|
retourne un itérateur vers l'élément précédant le début
(fonction membre publique) |
|
|
retourne un itérateur vers le début
(fonction membre publique) |
|
|
retourne un itérateur vers la fin
(fonction membre publique) |
|
Capacité |
|
|
vérifie si le conteneur est vide
(fonction membre publique) |
|
|
retourne le nombre maximum possible d'éléments
(fonction membre publique) |
|
Modificateurs |
|
|
efface le contenu
(fonction membre publique) |
|
|
insère des éléments après un élément
(fonction membre publique) |
|
|
construit des éléments en place après un élément
(fonction membre publique) |
|
|
(C++23)
|
insère une plage d'éléments après un élément
(fonction membre publique) |
|
efface un élément après un élément
(fonction membre publique) |
|
|
insère un élément au début
(fonction membre publique) |
|
|
construit un élément sur place au début
(fonction membre publique) |
|
|
(C++23)
|
ajoute une plage d'éléments au début
(fonction membre publique) |
|
supprime le premier élément
(fonction membre publique) |
|
|
modifie le nombre d'éléments stockés
(fonction membre publique) |
|
|
échange le contenu
(fonction membre publique) |
|
Opérations |
|
|
fusionne deux listes triées
(fonction membre publique) |
|
transfère les éléments d'un autre
forward_list
(fonction membre publique) |
|
|
supprime les éléments satisfaisant des critères spécifiques
(fonction membre publique) |
|
|
inverse l'ordre des éléments
(fonction membre publique) |
|
|
supprime les éléments dupliqués consécutifs
(fonction membre publique) |
|
|
trie les éléments
(fonction membre publique) |
|
Fonctions non membres
|
(C++11)
(C++11)
(supprimé en C++20)
(C++11)
(supprimé en C++20)
(C++11)
(supprimé en C++20)
(C++11)
(supprimé en C++20)
(C++11)
(supprimé en C++20)
(C++20)
|
compare lexicographiquement les valeurs de deux
forward_list
(modèle de fonction) |
|
(C++11)
|
spécialise l'algorithme
std::swap
(modèle de fonction) |
|
efface tous les éléments satisfaisant des critères spécifiques
(modèle de fonction) |
Guides de déduction |
(depuis C++17) |
Notes
| Macro de test de fonctionnalité | Valeur | Std | Fonctionnalité |
|---|---|---|---|
__cpp_lib_containers_ranges
|
202202L
|
(C++23) | Construction et insertion de plages pour les conteneurs |
__cpp_lib_constexpr_forward_list
|
202502L
|
(C++26) |
constexpr
std::forward_list
|
Exemple
|
Cette section est incomplète
Raison : aucun exemple |
Voir aussi
|
liste doublement chaînée
(modèle de classe) |