Question

J'ai quelques questions sur la façon d'utiliser les ensembles de C (std :: set)

  1. 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)

  2. Peut les ensembles de C être utilisés comme clés dans une carte?

Était-ce utile?

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 à

Tout peut être utilisé comme une clé dans une carte aussi longtemps que vous fournissez une classe ou une fonction qui peut les comparer. est un exemple.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top