Obtenir l'Union, intersection, ou la différence des ensembles en C ++
-
20-09-2019 - |
Question
J'ai quelques questions sur la façon d'utiliser les ensembles de C (std :: set)
-
Y at-il un moyen d'obtenir l'union, intersection, ou la différence de deux ensembles C ++? (Il est assez facile d'écrire mon propre functionto faire cela, mais je voulais savoir s'il y avait une fonction intégrée pour elle)
-
Peut les ensembles de C être utilisés comme clés dans une carte?
La solution
Utilisez le set_difference()
, set_union()
, set_intersection() et href="http://en.cppreference.com/w/cpp/algorithm/set_symmetric_difference" rel="noreferrer"> set_symmetric_difference()
fonctions.
Ensembles et cartes prennent en charge tout type de clé qui peut se comparer. Par défaut, cela signifie que le type a operator<()
défini, mais vous pouvez fournir votre propre comparateur. Les ensembles C de ne pas avoir operator<()
défini et ne peut donc pas être utilisé en tant que clés sauf si vous fournissez votre propre comparateur.
Autres conseils
En ce qui concerne votre première question, un coup d'oeil à