Tout d’abord, quelle est la principale différence entre eux?
La seule chose que j'ai trouvée est que unordered_set
n'a pas d'opérateur []
. Comment dois-je accéder à un élément dans unordered_set
, puisqu'il n'y a pas de []
?
Quel conteneur utilise un accès aléatoire à la mémoire (ou les deux)?
Et lequel d'entre eux est plus rapide ou utilise moins de mémoire?
Ils sont presque identiques. unordered_set
ne contient que des clés et aucune valeur. Il n'y a pas de correspondance entre une clé et une valeur, donc pas besoin d'un operator[]
. unordered_map
associe une clé à une valeur.
Vous pouvez utiliser les différentes méthodes find
dans unordered_set
pour localiser des éléments.
vous pouvez utiliser les itérateurs pour accéder aux éléments.
unordered_set <string> u{
"Dog",
"Cat",
"Rat",
"Parrot",
"bee"
};
for(auto& s:u){
cout << s << ' ';
}
unordered_set<string>::const_iterator point = u.find("bee");