std:: multimap
|
Défini dans l'en-tête
<map>
|
||
|
template
<
class
Key,
|
(1) | |
|
namespace
pmr
{
template
<
|
(2) | (depuis C++17) |
std::multimap
est un conteneur associatif qui contient une liste triée de paires clé-valeur, tout en permettant plusieurs entrées avec la même clé. Le tri est effectué selon la fonction de comparaison
Compare
, appliquée aux clés. Les opérations de recherche, d'insertion et de suppression ont une complexité logarithmique.
Les itérateurs de
std::multimap
parcourent les éléments dans un ordre non décroissant des clés, où le non-décroissant est défini par la comparaison utilisée lors de la construction. Autrement dit, étant donné
-
m
, un
std::multimap - it_l et it_r , itérateurs déréférençables vers m , avec it_l < it_r .
m. value_comp ( ) ( * it_r, * it_l ) == false (du plus petit au plus grand si on utilise la comparaison par défaut).
|
L'ordre des paires clé-valeur dont les clés sont équivalentes par comparaison est l'ordre d'insertion et ne change pas. |
(since C++11) |
Partout où la bibliothèque standard utilise les Compare exigences, l'équivalence est déterminée en utilisant la relation d'équivalence comme décrit sur Compare . En termes approximatifs, deux objets a et b sont considérés équivalents si aucun n'est comparé comme inférieur à l'autre : ! comp ( a, b ) && ! comp ( b, a ) .
std::multimap
satisfait aux exigences de
Container
,
AllocatorAwareContainer
,
AssociativeContainer
et
ReversibleContainer
.
Toutes les fonctions membres de
std::multimap
sont
constexpr
: il est possible de créer et d'utiliser des objets
std::multimap
dans l'évaluation d'une expression constante.
Cependant, les objets
|
(depuis C++26) |
Table des matières |
Paramètres du modèle
|
Cette section est incomplète
Raison : Ajouter les descriptions des paramètres du template. |
Types membres
| Type | Définition | ||||
key_type
|
Key
|
||||
mapped_type
|
T
|
||||
value_type
|
std:: pair < const Key, T > | ||||
size_type
|
Type entier non signé (généralement std::size_t ) | ||||
difference_type
|
Type entier signé (généralement std::ptrdiff_t ) | ||||
key_compare
|
Compare
|
||||
allocator_type
|
Allocator
|
||||
reference
|
value_type & | ||||
const_reference
|
const value_type & | ||||
pointer
|
|
||||
const_pointer
|
|
||||
iterator
|
LegacyBidirectionalIterator
et
ConstexprIterator
(depuis C++26)
vers
value_type
|
||||
const_iterator
|
LegacyBidirectionalIterator et ConstexprIterator (depuis C++26) vers const value_type | ||||
reverse_iterator
|
std:: reverse_iterator < iterator > | ||||
const_reverse_iterator
|
std:: reverse_iterator < const_iterator > | ||||
node_type
(depuis C++17)
|
une spécialisation de node handle représentant un nœud de conteneur |
Classes membres
compare les objets de type
value_type
(classe) |
Fonctions membres
construit le
multimap
(fonction membre publique) |
|
détruit le
multimap
(fonction membre publique) |
|
|
assigne des valeurs au conteneur
(fonction membre publique) |
|
|
retourne l'allocateur associé
(fonction membre publique) |
|
Itérateurs |
|
|
(C++11)
|
retourne un itérateur vers le début
(fonction membre publique) |
|
(C++11)
|
retourne un itérateur vers la fin
(fonction membre publique) |
|
(C++11)
|
retourne un itérateur inverse vers le début
(fonction membre publique) |
|
(C++11)
|
retourne un itérateur inverse vers la fin
(fonction membre publique) |
Capacité |
|
|
vérifie si le conteneur est vide
(fonction membre publique) |
|
|
retourne le nombre d'éléments
(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
ou des nœuds
(depuis C++17)
(fonction membre publique) |
|
|
(C++23)
|
insère une plage d'éléments
(fonction membre publique) |
|
(C++11)
|
construit un élément en place
(fonction membre publique) |
|
(C++11)
|
construit des éléments en place en utilisant un indice
(fonction membre publique) |
|
efface les éléments
(fonction membre publique) |
|
|
échange le contenu
(fonction membre publique) |
|
|
(C++17)
|
extrait les nœuds du conteneur
(fonction membre publique) |
|
(C++17)
|
fusionne les nœuds d'un autre conteneur
(fonction membre publique) |
Recherche |
|
|
retourne le nombre d'éléments correspondant à une clé spécifique
(fonction membre publique) |
|
|
trouve l'élément avec une clé spécifique
(fonction membre publique) |
|
|
(C++20)
|
vérifie si le conteneur contient un élément avec une clé spécifique
(fonction membre publique) |
|
renvoie la plage d'éléments correspondant à une clé spécifique
(fonction membre publique) |
|
|
retourne un itérateur vers le premier élément
non inférieur
à la clé donnée
(fonction membre publique) |
|
|
retourne un itérateur vers le premier élément
supérieur
à la clé donnée
(fonction membre publique) |
|
Observateurs |
|
|
renvoie la fonction qui compare les clés
(fonction membre publique) |
|
renvoie la fonction qui compare les clés dans les objets de type
value_type
(fonction membre publique) |
|
Fonctions non membres
|
(supprimé en C++20)
(supprimé en C++20)
(supprimé en C++20)
(supprimé en C++20)
(supprimé en C++20)
(C++20)
|
compare lexicographiquement les valeurs de deux
multimap
s
(modèle de fonction) |
|
spécialise l'algorithme
std::swap
(modèle de fonction) |
|
|
(C++20)
|
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_map
|
202502L
|
(C++26) |
constexpr
std::multimap
|
Exemple
|
Cette section est incomplète
Raison : aucun exemple |
Rapports de défauts
Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.
| DR | Appliqué à | Comportement publié | Comportement corrigé |
|---|---|---|---|
| LWG 230 | C++98 |
Key
n'était pas requis d'être
CopyConstructible
(une clé de type
Key
pourrait ne pas pouvoir être construite)
|
Key
est également requis
d'être CopyConstructible |
Voir aussi
|
collection de paires clé-valeur, triées par clés, clés uniques
(modèle de classe) |
|
|
(C++11)
|
collection de paires clé-valeur, hachée par clés
(modèle de classe) |
|
(C++23)
|
adapte deux conteneurs pour fournir une collection de paires clé-valeur, triées par clés
(modèle de classe) |