Union of Set en C ++

Union of Set en C ++
Considérez les deux ensembles suivants:
a = 'e', 'd', 'c', 'b', 'a'
b = 'h', 'g', 'f', 'e', ​​'d'

En C ++, l'union de ces deux ensembles serait:

a = 'a', 'b', 'c', 'd', 'e', ​​'f', 'g', 'h'

Les éléments de l'ensemble B sont joints aux éléments de l'ensemble A sans avoir deux fois un élément qui était dans les deux ensembles. Un tel élément apparaît une fois dans le nouvel ensemble. Le nouvel ensemble est trié par ordre croissant avec les paramètres par défaut.

Avant C ++ 20, la bibliothèque d'algorithmes a dû être utilisée d'une manière assez compliquée pour avoir l'union de deux ensembles. À cette fin, la bibliothèque d'algorithmes a la fonction set_union () sous différentes formes surchargées avec des arguments variables. Ces fonctions surchargées sont toujours utilisées aujourd'hui, mais Set_Union () ne sera pas abordée dans cet article.

La classe définie dans C ++ 20 a deux fonctions de membre surchargées Merge () pour obtenir l'union de deux ensembles. Les syntaxes peuvent sembler compliqués, mais ils sont très faciles à utiliser. Les fonctions des membres de la fusion seront utilisées dans cet article pour montrer comment obtenir le syndicat de deux ensembles.

modèle vide fusion (set & source)

Cette fonction de membre crée une union de deux ensembles. Il revient vide. C'est l'ensemble d'intérêt qui utilise la fonction des membres, fusiter (). L'autre ensemble fusionne avec l'ensemble d'intérêt. L'identifiant de l'autre ensemble est l'argument de la fonction de membre de la fusion.

L'argument semble compliqué, mais ce n'est pas. L'argument est:

ensemble source

Ceci est le modèle pour Set. Il commence par le mot réservé, réglé. N'oubliez pas que les éléments simples définis sont appelés clés. Ainsi, le premier paramètre de modèle est pour le type de clé. Il peut être char, flotter, double, corde, etc. Le deuxième paramètre de modèle est pour l'objet de classe compare. En cas d'omission, le résultat est que l'ensemble sera trié ascendant, en interne. Le troisième paramètre dans les supports d'angle est pour l'attribution de la mémoire des éléments définis. S'il est omis, l'allocateur par défaut est choisi. La source représente l'identifiant de l'autre ensemble (ou ensemble entrant). Ainsi, tout ce paramètre d'argument complexe entre parenthèses de la syntaxe est remplacé par l'identifiant de l'autre ensemble du programme.

Lors de la création de l'ensemble d'intérêt ou de l'autre ensemble, ces paramètres doivent être pris en considération. Pour la programmation typique, seule la clé doit être prise en considération.

Que l'ensemble suivant soit l'ensemble d'intérêt:

a = 'e', 'd', 'c', 'b', 'a'

Que l'ensemble suivant soit l'autre ensemble (ou ensemble entrant).

b = 'h', 'g', 'f', 'e', ​​'d'

Le programme suivant fusionne le jeu B dans Set 'A'. Le nouvel ensemble «A» est l'union de l'ancien ensemble «A» et «B». Les valeurs de l'ensemble B qui ne sont pas dans l'ensemble «A» sont déplacées pour définir «A».

#inclure
#inclure
Utilisation de Namespace Std;
int main()

set a = 'e', 'd', 'c', 'b', 'a';
set b = 'h', 'g', 'f', 'e', ​​'d';
un.fusion (b);
for (set :: iterator iter = a.commencer(); iter != A.fin(); iter ++)
couter << *iter << ", ";
couter << endl;
retour 0;

La sortie est:

A, B, C, D, E, F, G, H,

Notez que l'ensemble syndical a été organisé par ordre croissant en utilisant la classe de comparaison par défaut.

modèle vide fusion (set && source)

Ceci est l'autre fonction de membre surchargé pour fusionner deux ensembles. Cette fonction de membre crée une union de deux ensembles. Il revient vide. C'est l'ensemble d'intérêt qui utilise la fonction des membres, fusiter (). L'autre ensemble fusionne avec l'ensemble d'intérêt. L'identifiant de l'autre ensemble est l'argument de la fonction fusion (). Cette fois, l'identifiant est un identifiant de référence.

L'argument semble compliqué, mais ce n'est pas. L'argument est:

ensemble&& source

Ceci est le modèle pour Set. Il commence par le mot réservé, réglé. N'oubliez pas que les éléments uniques sont appelés clés. Ainsi, le premier paramètre de modèle est pour le type de clé. Il peut être char, flotter, double, corde, etc. Le deuxième paramètre de modèle est pour l'objet de classe compare. En cas d'omission, le résultat est que l'ensemble sera trié ascendant, en interne. Le troisième paramètre dans les supports d'angle est pour l'attribution de la mémoire des éléments définis. S'il est omis, l'allocateur par défaut est choisi. Dans ce cas, la source représente l'identifiant de référence de Rvalue de l'autre ensemble (ou ensemble entrant). Ainsi, tout ce paramètre d'argument complexe entre parenthèses de la syntaxe est remplacé par l'identifiant de référence de la valeur de l'autre ensemble dans le programme. Les doubles ampères et, &&, dans ce cas, signifie référence de référence. C'est là que cette fonction diffère de la précédente.
Lors de la création de l'ensemble d'intérêt ou de l'autre ensemble, ces paramètres doivent être pris en considération. Pour la programmation typique, seule la clé doit être prise en considération.

Que l'ensemble suivant soit l'ensemble d'intérêt:

a = 'e', 'd', 'c', 'b', 'a'

Laissez l'ensemble suivant littéral, être l'autre ensemble (ou ensemble entrant).

'H', 'g', 'f', 'e', ​​'d'

Le programme suivant fusionne le jeu B dans Set 'A'. Le nouvel ensemble «A» est l'union de l'ancien ensemble «A» et «B». Les valeurs de l'ensemble B qui ne sont pas dans l'ensemble «A» sont déplacées pour définir «A».

#inclure
#inclure
Utilisation de Namespace Std;
int main()

ensemble a = 'e', 'd', 'c', 'b', 'a';
ensemble&& b = 'h', 'g', 'f', 'e', ​​'d';
un.fusion (b);
pour (ensemble:: iterator iter = a.commencer(); iter != A.fin(); iter ++)
couter << *iter << ", ";
couter << endl;
retour 0;

La sortie est:

A, B, C, D, E, F, G, H,

Notez que l'ensemble syndical a été organisé par ordre croissant en utilisant la classe de comparaison par défaut.

Conclusion

Avoir le syndicat de deux sets fusionne également les deux ensembles. La classe de set prédéfinie en C ++ a deux fonctions de membre surchargées à cet effet. L'ensemble entrant (ou l'autre ensemble) fusionne avec l'ensemble d'intérêt. L'ensemble d'intérêt utilise la fonction de membre Merge (). L'identifiant de l'ensemble entrant est l'argument de la fonction Merge (). Seuls les éléments qui ne sont pas dans l'ensemble d'intérêt sont déplacés de l'ensemble entrant à l'ensemble d'intérêt. La classe SET est dans la bibliothèque SET et doit être incluse dans le programme.