Pour une classe X et un QSet < X *>, comment est-il possible de s'assurer que le QSet ne contient pas d'éléments dupliqués? La propriété unique dans chaque objet de type X est un QString qui peut être récupéré en utilisant getName().Duplicates dans QSet
J'ai implémenté la fonction qHash (X *), l'opérateur ==(), l'opérateur <() et l'opérateur>(), mais le QSet accepte toujours les éléments dupliqués, c'est-à-dire ceux ayant le même nom.
Quelqu'un pourrait-il m'aider à faire ce travail?
Ok. Voici ce que j'essaie de faire. J'ai une classe Y et une classe X, toutes deux héritant de QDialog. Une fonction de la classe Y (une fente) est responsable de la génération d'objets de la classe X. Le dialogue de Y doit être rendu responsable des objets X générés. Voilà pourquoi je créé un QSet < X *> membre Y.
Une idée concernant l'implémentation de QSet <> :: contains() ?? Je veux dire comment vérifie-t-il si l'objet demandé est dans l'ensemble? –
Dans votre cas (en utilisant 'QSet'), il calcule d'abord la valeur de hachage (en utilisant 'qHash (X *)'). Ensuite, il comparera toutes les entrées ayant cette valeur de hachage en utilisant la langue définie 'bool operator == (const X *, const X *)'. –
Job
J'ai essayé de le déboguer, mais aucune des fonctions n'est appelée. Pourquoi cela arrive-t-il? Je vais bananes !! –