This repository has been archived on 2023-10-29. You can view files and clone it, but cannot push or open issues or pull requests.
GestionProjet/src/Projet.cpp
2023-10-27 19:27:53 +02:00

57 lines
1.3 KiB
C++

#include "../includes/Projet.hpp"
Projet::Projet() {}
Projet::Projet(VecTaches t) : taches(t) {}
Projet::~Projet() {}
Projet::Projet(const Projet &) {}
const Projet &Projet::operator=(const Projet &src) {
if (this == &src) {
return *this;
}
return *this;
}
std::pair<int, int> Projet::pick_two_random_tasks() {
size_t size = this->taches.size();
size_t rand1 = static_cast<size_t>(rand()) % size;
size_t rand2 = static_cast<size_t>(rand()) % size;
if (this->taches[rand1].first->depends_from(*this->taches[rand2].first))
pick_two_random_tasks();
// Heritage de tache ?
int id1 = this->taches[rand1].first->unique_id;
int id2 = this->taches[rand2].first->unique_id;
return std::make_pair(id1, id2);
}
// Comment acceder à unique_id ici ?
Tache *Projet::contains(int id) {
for (auto t : this->taches) {
if (id == t.first->unique_id) {
return t.first;
}
}
return nullptr;
}
// Comment acceder à taches ici ?
std::ostream &operator<<(std::ostream &out, const Projet &data) {
for (auto t : data.taches) {
out << t.first << " is " << std::boolalpha << t.second;
}
return out;
}
const Projet::VecTaches Projet::topologicalSort() {
// Recupere le calcul fait par PP_postfixe et construit son tri
// PP_postfixe(this->taches);
return VecTaches(); /* TODO */
}