Partager via


unordered_set::insert

Insère un élément ou une plage d'éléments dans une classe unordered_set.

// (1) single element pair<iterator, bool> insert(     const value_type& Val );   // (2) single element, perfect forwarded template<class ValTy> pair<iterator, bool> insert(     ValTy&& Val );  // (3) single element with hint iterator insert(     const_iterator Where,     const value_type& Val );   // (4) single element, perfect forwarded, with hint template<class ValTy> iterator insert(     const_iterator Where,     ValTy&& Val );  // (5) range  template<class InputIterator>  void insert(     InputIterator First,     InputIterator Last );   // (6) initializer list void insert(     initializer_list<value_type> IList ); 

Paramètres

Paramètre

Description

Val

Valeur d'un élément à insérer dans la classe unordered_set sauf si elle contient déjà un élément dont la clé est classée de manière équivalente.

Where

Emplacement où commencer à rechercher le point d'insertion correct.

ValTy

Paramètre de modèle qui spécifie le type d'argument que la classe unordered_set peut utiliser pour construire un élément de value_type et effectue un transfert parfait de Val comme argument.

First

Position du premier élément à copier.

Last

Position juste au-delà du dernier élément à copier.

InputIterator

Argument de fonction avec modèle qui remplit les conditions requises par un itérateur d'entrée qui pointe vers des éléments d'un type pouvant servir à construire des objets value_type.

IList

initializer_list depuis laquelle copier les éléments.

Valeur de retour

Les fonctions membres à un élément, (1) et (2), retournent une paire dont le composant bool a la valeur true si une insertion a été effectuée, et false si la classe unordered_set contenait déjà un élément dont la clé avait une valeur équivalente dans le classement. Le composant itérateur de la paire de valeurs de retour pointe sur l'élément nouvellement inséré si le composant bool a la valeur true ou sur l'élément existant si le composant bool a la valeur false.

Les fonctions membres à un élément avec indicateur, (3) et (4), retournent un itérateur qui pointe sur la position où le nouvel élément a été inséré dans la classe unordered_set ou, si un élément avec une clé équivalente existe déjà, sur l'élément existant.

Notes

Aucun itérateur, pointeur ou référence n'est invalidé par cette fonction.

Durant l'insertion d'un seul élément, si une exception est levée mais qu'elle ne se produit pas dans la fonction de hachage du conteneur, l'état du conteneur n'est pas modifié. Si l'exception est levée dans la fonction de hachage, le résultat n'est pas défini. Durant l'insertion de plusieurs éléments, si une exception est levée, le conteneur reste dans un état non spécifié mais valide.

Pour accéder au composant itérateur d'une pair pr qui est retournée par les fonctions membres à un élément, utilisez pr.first ; pour déréférencer l'itérateur dans la paire retournée, utilisez *pr.first, qui vous donne un élément. Pour accéder au composant bool, utilisez pr.second. Pour obtenir un exemple, voir l'exemple de code plus loin dans cet article.

La value_type d'un conteneur est un typedef qui appartient au conteneur et, pour la classe set, unordered_set<V>::value_type est de type const V.

La fonction membre de plage (5) insère la séquence de valeurs d'éléments dans une classe unordered_set qui correspond à chaque élément traité par un itérateur dans la plage [First, Last) ; ainsi, Last n'est pas inséré. La fonction membre de conteneur end() fait référence à la position qui suit le dernier élément du conteneur. Par exemple, l'instruction s.insert(v.begin(), v.end()); tente d'insérer tous les éléments de v dans s. Seuls les éléments qui ont des valeurs uniques dans la plage sont insérés. Les doublons sont ignorés. Pour savoir quels éléments sont rejetés, utilisez les versions à un élément de insert.

La fonction membre de liste d'initialiseurs (6) utilise une initializer_list pour copier des éléments dans la classe unordered_set.

Pour plus d'informations sur l'insertion d'un élément construit sur place (autrement dit, aucune opération de copie ni de déplacement n'est effectuée), voir set::emplace et set::emplace_hint.

Pour obtenir un exemple de code, consultez set::insert.

Configuration requise

En-tête : <unordered_set>

Espace de noms : std

Voir aussi

Référence

<unordered_set>

unordered_set, classe

Bibliothèque STL (Standard Template Library)