Représentation d'un ordre partiel par une matrice stockant toutes les comparaisons. More...
#include "cogitant/partialorder_simplememo.h"
Public Member Functions | |
void | clear () |
Vide l'ensemble. More... | |
void | optimize () |
Optimiser. More... | |
void | unoptimize () |
Supprimer les structures optimisées. More... | |
bool | isLessOrEqualThan (iSet i1, iSet i2) const |
Retourne true ssi i1 <= i2. More... | |
Constructeurs - destructeur. | |
PartialOrder_SimpleMemo () | |
Constructeur d'un ensemble ordonné vide. More... | |
PartialOrder_SimpleMemo (PartialOrder const &c) | |
Constructeur par recopie. More... | |
virtual | ~PartialOrder_SimpleMemo () |
Destructeur. More... | |
Public Member Functions inherited from cogitant::PartialOrder_Simple | |
void | reserve (nSet s) |
Réservation d'espace dans l'ensemble. More... | |
void | setSize (nSet n) |
Fixer le nombre d'éléments. More... | |
void | setImmediateLess (iSet i1, iSet i2) |
Ajout d'un couple à l'ordre partiel. More... | |
void | setImmediateLess (iSet i, std::vector< iSet > const &ie) |
Sélection des éléments immédiatement inférieurs. More... | |
void | unsetImmediateLess (iSet i1, iSet i2) |
Retrait de l'information i1 > i2. More... | |
nSet | maxSize () const |
Taille maximale de l'ensemble. More... | |
nSet | size () const |
Taille actuelle de l'ensemble. More... | |
bool | optimized () const |
Optimisation des structures de données. More... | |
void | getImmediateLessElements (iSet i, std::vector< iSet > &result) const |
Accès aux éléments immédiatement inférieurs. More... | |
bool | isImmediateLess (iSet i1, iSet i2) const |
Éléments immédiatement inférieurs. More... | |
PartialOrder_Simple () | |
Constructeur d'un ensemble ordonné vide. More... | |
PartialOrder_Simple (PartialOrder const &c) | |
Constructeur par recopie. More... | |
virtual | ~PartialOrder_Simple () |
Destructeur. More... | |
Public Member Functions inherited from cogitant::PartialOrder | |
PartialOrder () | |
Constructeur d'un ordre partiel. More... | |
PartialOrder (PartialOrder const &c) | |
Constructeur par recopie. More... | |
virtual | ~PartialOrder () |
Destructeur. More... | |
virtual iSet | iBegin () const |
Itérateur de début. More... | |
virtual iSet | iEnd () const |
Itérateur de fin. More... | |
virtual void | iNext (iSet &i) const |
Incrémente l'itérateur passé pour le parcours de l'ensemble. More... | |
virtual bool | isGreaterOrEqualThan (iSet i1, iSet i2) const |
Comparaison : >=. More... | |
virtual bool | isLessThan (iSet i1, iSet i2) const |
Comparaison : <. More... | |
virtual bool | isGreaterThan (iSet i1, iSet i2) const |
Comparaison : > More... | |
virtual Comparison | comparison (iSet i1, iSet i2) const |
Comparaison. More... | |
virtual void | getImmediateGreaterElements (iSet i, std::vector< iSet > &result) const |
Accès aux éléments immédiatement supérieurs. More... | |
virtual bool | isImmediateGreater (iSet i1, iSet i2) const |
Éléments immédiatement supérieurs. More... | |
bool | isLessOrEqualThanSets (std::vector< iSet > const &i1, std::vector< iSet > const &i2) const |
Comparaison : <=. More... | |
bool | isGreaterOrEqualThanSets (std::vector< iSet > const &i1, std::vector< iSet > const &i2) const |
Comparaison : >=. More... | |
virtual void | getGreaterOrEqualElements (iSet i, std::vector< iSet > &result) const |
Accès à tous les éléments supérieurs. More... | |
virtual void | getLessOrEqualElements (iSet i, std::vector< iSet > &result) const |
Accès à tous les éléments inférieurs. More... | |
Additional Inherited Members | |
Public Types inherited from cogitant::PartialOrder | |
enum | Comparison { EQUAL, LESS, GREATER, UNCOMPARABLE } |
Résultat de la comparaison de deux éléments d'un PartialOrder. More... | |
Protected Member Functions inherited from cogitant::PartialOrder | |
virtual bool | isValidIterator (iSet i1) const |
Vérification de la validité d'un identificateur. More... | |
Protected Attributes inherited from cogitant::PartialOrder_Simple | |
nSet | m_size |
Mémorisation de la taille (pour accès plus rapide). | |
Représentation d'un ordre partiel par une matrice stockant toutes les comparaisons.
Cette classe stocke l'ordre partiel de la même façon que PartialOrder_Simple (dont elle hérite), la seule différence est que l'appel à la méthode optimize() calcule toutes les comparaisons entre les éléments de l'ordre et les stocke dans une matrice, ce qui permet une comparaison de deux éléments en O(1). L'inconvénient de cette méthode est bien sûr l'occupation mémoire qui est de n.(n-1)/8 octets, n étant le nombre d'éléments.
cogitant::PartialOrder_SimpleMemo::PartialOrder_SimpleMemo | ( | ) |
Constructeur d'un ensemble ordonné vide.
cogitant::PartialOrder_SimpleMemo::PartialOrder_SimpleMemo | ( | PartialOrder const & | c | ) |
Constructeur par recopie.
Si c est optimisé (quelle que soit sa classe), l'ordre partiel construit sera optimisé.
|
virtual |
Destructeur.
|
virtual |
Vide l'ensemble.
Reimplemented from cogitant::PartialOrder_Simple.
Reimplemented in cogitantcs::PartialOrderClient.
Retourne true
ssi i1 <= i2.
Le résultat est retourné en O(1). Les autres méthodes d'accès à l'ordre (isGreaterOrEqualThan(), isLessThan(), isGreaterThan()) sont aussi en O(1) car elles appellent isLessOrEqualThan().
ExceptionISetOutOfBounds |
Reimplemented from cogitant::PartialOrder_Simple.
|
virtual |
Optimiser.
L'appel à cette méthode provoque un calcul des structures optimisées pour l'accès rapide à l'ordre partiel. Une fois optimisé, l'ordre partiel ne doit plus être modifié. Cette méthode doit être concrétisée dans les sous classes (éventuellement avec un code vide) et fournir une éventuelle optimisation.
Reimplemented from cogitant::PartialOrder_Simple.
Reimplemented in cogitantcs::PartialOrderClient.
|
virtual |
Supprimer les structures optimisées.
Cette méthode peut être appelée après l'appel à optimize(). Après appel à unoptimize(), l'ordre partiel peut à nouveau être modifié. *.
Reimplemented from cogitant::PartialOrder_Simple.