Existe-t-il un conteneur Qt, qui est conscient du signal détruit de QObject et supprime l'élément si un élément a été détruit?Conteneur QObject selfdestruction aware
I.e. comme ceci:
QObject *obj1 = new MyObject();
QObject *obj2 = new MyObject();
QObjectContainer c;
c.add(obj1);
c.add(obj2);
qDebug() << c.size(); // Prints 2
delete obj1;
qDebug() << c.size(); // Prints 1
Attendez, vous avez un défaut dans votre idée. Si vous supprimez un objet, comment trouveriez-vous son index dans le tableau? Vous devez effectuer une recherche complète à chaque fois. Pensez-y, il ne peut pas être mis en œuvre de manière raisonnable. Même si votre tableau attrape le signal 'destroyed()', il obtient seulement l'adresse du pointeur, pas son index dans le tableau. Vous devrez le rechercher en valeur. La performance serait horrible. – sashoalm
Ajoutez vos objets en tant qu'enfants d'un QObject parent fictif ;-) – peppe