#include #include "deque.h" #include using namespace std; /************************* * Section pour la PARTIE 2 **************************/ //constantes pour définir l'étendue des priorités - plus propre que de mettre des 1 et 10 dans le code const int MIN_PRIOR = 1; const int MAX_PRIOR = 10; enum TypeEvenement { ADD_REQUEST, PROCESS_NEXT }; //Note: dans une struct, tout est public struct Evenement { TypeEvenement type; //si type == ADD_REQUEST, id = identifiant de la requête, priorite = doit être entre MIN_PRIOR et MAX_PRIOR // (vous n'avez pas à vérifier la condition sur priorite) //si type == PROCESS_NEXT, ces deux variables n'ont pas de valeur définie int id; int priorite; //ci-bas une syntaxe qui initialise les variables membres avec type = PROCESS_NEXT, id = 0, priorite = 0 Evenement() : type(PROCESS_NEXT), id(0), priorite(0) {} Evenement(TypeEvenement type, int id = 0, int p = 0){ this->type = type; this->id = id; this->priorite = p; } }; vector get_histo(vector& events) { //Note : vous pouvez tester le type d'événement en le comparant avec l'enum, par exemple //Evenement& ev = events[0]; //if (ev.type == PROCESS_NEXT) // ... //else if (ev.type == ADD_REQUEST) // ... /* à compléter avec votre code de la Partie 2 */ } void test_histo() { //ceci reproduit l'exemple du devoir et appelle votre fonction vector events; events.push_back(Evenement(ADD_REQUEST, 1, 5)); events.push_back(Evenement(ADD_REQUEST, 2, 5)); events.push_back(Evenement(ADD_REQUEST, 3, 1)); events.push_back(Evenement(PROCESS_NEXT)); events.push_back(Evenement(ADD_REQUEST, 4, 10)); events.push_back(Evenement(PROCESS_NEXT)); events.push_back(Evenement(ADD_REQUEST, 5, 4)); events.push_back(Evenement(ADD_REQUEST, 6, 2)); events.push_back(Evenement(ADD_REQUEST, 7, 4)); events.push_back(Evenement(PROCESS_NEXT)); events.push_back(Evenement(PROCESS_NEXT)); events.push_back(Evenement(PROCESS_NEXT)); vector ordre = get_histo(events); cout << "Ordre = "; for (auto it = ordre.begin(); it != ordre.end(); ++it) { cout << *it << " "; } cout << endl; } /************************* * FIN de section pour la PARTIE 2 **************************/ int main() { //quelques tests qui font des push et des pop, et affichent l'état de votre objet deque d; d.push_back(0); cout<