std::flat_set<Key,Compare,KeyContainer>:: insert
|
std::
pair
<
iterator,
bool
>
insert
(
const
value_type
&
value
)
;
|
(1) | (depuis C++23) |
|
std::
pair
<
iterator,
bool
>
insert
(
value_type
&&
value
)
;
|
(2) | (depuis C++23) |
|
iterator insert
(
const_iterator pos,
const
value_type
&
value
)
;
|
(3) | (depuis C++23) |
|
iterator insert
(
const_iterator pos, value_type
&&
value
)
;
|
(4) | (depuis C++23) |
|
template
<
class
K
>
iterator insert ( const_iterator pos, K && x ) ; |
(5) | (depuis C++23) |
|
template
<
class
InputIt
>
void insert ( InputIt first, InputIt last ) ; |
(6) | (depuis C++23) |
|
template
<
class
K
>
std:: pair < iterator, bool > insert ( K && x ) ; |
(7) | (depuis C++23) |
|
template
<
class
InputIt
>
void insert ( std:: sorted_unique_t , InputIt first, InputIt last ) ; |
(8) | (depuis C++23) |
|
void
insert
(
std::
initializer_list
<
key_type
>
ilist
)
;
|
(9) | (depuis C++23) |
|
void
insert
(
std::
sorted_unique_t
s,
std::
initializer_list
<
key_type
>
ilist
)
;
|
(10) | (depuis C++23) |
Insère un ou plusieurs éléments dans le conteneur, si celui-ci ne contient pas déjà un élément avec une clé équivalente.
- (5) emplace ( pos, std:: forward < K > ( x ) ) (à une position aussi proche que possible de la position juste avant pos );
- (7) emplace ( std:: forward < K > ( x ) ) .
key_type
doit construire un objet
u
pour lequel
find
(
k
)
==
find
(
u
)
est
true
. Sinon, le comportement est indéfini.
-
L'identifiant qualifié
Compare::is_transparentest valide et désigne un type, et - std:: is_constructible_v < value_type, K > est true ,
Key
.
-
Insère les éléments de l'intervalle
[first,last)comme par c. insert ( c. end ( ) , first, last ) ; . -
Trie l'intervalle des éléments nouvellement insérés par rapport à
compare. - Fusionne l'intervalle trié résultant et l'intervalle trié des éléments préexistants en un seul intervalle trié. (Note : l'opération de fusion peut allouer de la mémoire).
- Efface tous sauf le premier élément de chaque groupe d'éléments équivalents consécutifs.
[
first
,
last
)
. Équivalent à
insert
(
first, last
)
;
.
| Les informations sur l'invalidation des itérateurs sont copiées depuis ici |
Table des matières |
Paramètres
| pos | - | itérateur vers la position avant laquelle le nouvel élément sera inséré |
| value | - | valeur de l'élément à insérer |
| first, last | - | la paire d'itérateurs définissant la plage source des éléments à insérer |
| ilist | - | liste d'initialisation depuis laquelle insérer les valeurs |
| x | - | une valeur de tout type pouvant être comparée de manière transparente avec une clé |
| s | - |
une
balise de désambiguïsation
indiquant que la séquence d'entrée est triée (par rapport à
compare
) et ne contient que des éléments uniques
|
| Exigences de type | ||
-
InputIt
doit satisfaire aux exigences de
LegacyInputIterator
.
|
||
Valeur de retour
Exceptions
|
Cette section est incomplète
Raison : cas 6,8-10 |
Complexité
size()
sinon. Plus le coût de l'insertion dans
c
.
Notes
L'insertion avec indice
(
3-5
)
ne retourne pas un booléen afin d'être compatible en signature avec l'insertion positionnelle sur les conteneurs séquentiels, tels que
std::vector::insert
. Cela permet de créer des inserters génériques tels que
std::inserter
. Une manière de vérifier le succès d'une insertion avec indice est de comparer
size()
avant et après.
Exemple
#include <cassert> #include <flat_set> #include <iostream> int main() { std::flat_set<int> set; auto result_1 = set.insert(3); assert(result_1.first != set.end()); // c'est un itérateur valide assert(*result_1.first == 3); if (result_1.second) std::cout << "insert done\n"; auto result_2 = set.insert(3); assert(result_2.first == result_1.first); // le même itérateur assert(*result_2.first == 3); if (!result_2.second) std::cout << "no insertion\n"; }
Sortie :
insert done no insertion
Voir aussi
|
construit un élément en place
(fonction membre publique) |
|
|
construit des éléments en place en utilisant un indice
(fonction membre publique) |
|
|
crée un
std::insert_iterator
dont le type est déduit de l'argument
(fonction template) |