Actuellement, je pense que ma meilleure option est d'utiliser std :: set_intersection, puis de vérifier si la taille de l'entrée la plus petite est la même que le nombre d'éléments remplis par set_intersection.Comment vérifier si un vecteur est un sous-ensemble d'un autre?
Existe-t-il une meilleure solution?
Je crois que std :: set_intersection effectuera la même chose que ci-dessus (ie (2 * (count1 + count2)) - 1 opérations) – Nim
Eh bien le pire des cas est le même, mais si le résultat est faux les inclus feront leur travail Plus vite. Et vous utilisez également un vecteur de plus dans l'intersection. Comme les noms suggèrent que set_intersection devrait être utilisé pour trouver cette intersection et inclut pour vérifier si un ensemble est un sous-ensemble d'un autre. – Klark
Si vos données sont dans 'std :: set', vous pouvez utiliser' std :: set_difference' –