Je cherche à créer une sorte de scheduler qui consiste simplement à m'ordonner des éléments suivant un coefficient et à me donner l'élément le plus grand.
Rien de bien compliqué sauf que je n'arrive pas à trouver le ou les container(s) adéquat(s) sachant que:
- les éléments sont triés
- je dois pouvoir supprimer le premier élément (pop() sur une file)
- je dois pouvoir mettre à jour certains éléments présent dans la file (impossible avec priority_queue seule) avec modification de la position dans la file suivant la nouvelle valeur
Pour l'instant j'en était à une class comportant :
- 1 multiset my_multiset trié par ordre décroissant, gérer moi même le caractère file
- 1 map<int,my_multiset::iterator> references pour pouvoir accéder rapidement à un élément de la file
Seulement plusieurs problème se pose alors. Beaucoup de suppression de premier élément du multiset (lors d'une mise à jour je dois supprimer l'ancien élément, puis insérer un ce même élément avec sa nouvelle valeur pour que sa position dans la file soit modifiée en conséquence).
Bref c'est pas top.
Si une âme charitable à compris ne serait-ce qu'un mot de ce que je voulais faire et me prodigue un conseil je lui serait reconnaissant.![]()
Partager